読者です 読者をやめる 読者になる 読者になる

tyoshikawa1106のブログ

- Force.com Developer Blog -

VBA:一括コメントアウト

VBA

VBA開発時にソースを複数行コメントアウトする方法があります。 ヘッダー部で右クリックを行い、編集をクリックします。 編集のウィンドウが表示されます。 その中にコメント ブロックと非コメントブロックのアイコンがあります。 コメントブロックで「'」を…

VBA:ファイルの存在判定

VBA

ファイルの存在判定もフォルダの判定と同じでDir関数を使います。 引数にvbDirectoryは必要ありません。 Dir(ファイルのパス) ファイルがなければ "" が返ってきて、あればファイルの情報が返ってきます。 ファイル存在判定のサンプルです。 If Dir(prmPath)…

VBA:フォルダの存在判定

VBA

フォルダの存在判定にはDir関数を使用します。 また引数にvbDirectoryを指定する必要があります。 Dir(フォルダのパス, vbDirectory) フォルダが存在しない場合は "" が返ってきます。 フォルダが存在する場合はフォルダの情報を返ってきます。 フォルダ存在…

VBA:ファイルの削除

VBA

ファイルの削除にはKill関数を使います。 Kill "c\TestFolder\text.txt" フォルダ内の全ファイルを削除する場合は次のような感じです。 '************************************* '* フォルダ内ファイル削除処理 '************************************* Priv…

VBA:引数内の改行

VBA

引数の指定が長くなった時に改行したい場合は" _ "を使用します。 Private Sub getValue(prmText1 As String, _ prmText2 As String, _ prmText3 As String, _ prmText4 As String) _ の前には半角スペースも必要みたいです。

VBA:文字数の取得

VBA

文字数の取得は「LEN」関数で行えます。 Len( String型変数 )

VBA:Print出力での改行コード

VBA

末尾に「;」を付けると出力に改行コードが含まれないとのことです。 なので自分で改行コードをつけ、その後に「;」をつけると好きな改行コードを 指定できます。 次のようになります。 Print #2, record & vbLf;

VBA:ユーザフォームの切り替え

VBA

ユーザフォームの表示切り替えは次の方法で行います。 ユーザフォームを表示する UserForm.Show ユーザフォームを非表示にする(値を保持する) UserForm.Hide ユーザフォームを非表示にする(値を保持しない) Unload UserForm

VBA:ツールの参照設定

VBA

次の変数宣言時にエラーが発生しました。 As Forlder As File 原因は参照設定のチェックがついていないことでした。 Microsoft ScriptRunTimeにチェックをつける必要があります。 参照設定はVisual Basicのツールから設定できます。

VBA:処理の効率化

VBA

ブックやシートに入力する仕様の場合は、処理開始時に数式の再計算と画面の再描画を無効にすると効率が良くなります。 処理終了時には有効にするのを忘れないこと。 画面更新の停止 Application.ScreenUpdating = False 画面更新の再開 Application.ScreenUp…

VBA:自ブックの所在フォルダ情報を取得

VBA

自ブックの所在フォルダ情報を取得するには次の方法で可能です。 ThisWorkbook.Path サンプル Sub Test() MsgBox ThisWorkbook.Path End Sub

VBA:保存時のプライバシーに関する注意

VBA

保存時に次の警告がでることがあります。 「プライバシーに関する注意:このドキュメントには、マクロ、ActiveXコントロール、XML拡張パックの情報、またはWebコンポーネントが含まれています。これらにはドキュメント検査機能で削除することができない個人…

VBA:変数の有効範囲

VBA

変数も宣言の仕方によって有効範囲がきまります。 Public i As Integer 'パブリックモジュールレベルの変数宣言 Dim j As Integer 'プライベートモジュールレベルの変数宣言 Private Sub Test() Dim k As Integer 'プロシージャレベルの変数宣言 EndSub

VBA:ステートメントについて

VBA

プロシージャを宣言するときは、参照権限を指定する必要があります。 Public を宣言した場合、他のモジュールからでも参照可能になります。 Private を宣言した場合、他のモジュールからは参照不可になります。 宣言しない場合は、自動でPublicとして扱われ…

VBA:プロシージャ

VBA

プロシージャとは処理単位の一つで 「Subプロシージャ」と「Functionプロシージャ」の2種類があります。 Subプロシージャは、戻り値を返すことはしません。 Functionプロシージャは、戻り値を返します。 Sub Test() intData = 1 Call SubTest(intData) intD…

VBA:計算式

VBA

VBAの計算式は次のように行います。 Dim 変数名 As データ型 使用出来る演算子は次のとおりです。 演算子 意味 + 加算 - 減算 * 乗算 / 除算 ¥ 除算の商 Mod 除算の余り ^ べき乗する

VBA:変数の宣言とデータ型

VBA

VBAで変数とデータ型を宣言するには、次のように行います。 データ型を宣言しない場合は、バリアント型として扱われます。 Dim 変数名 As データ型 VBAで使用できるデータ型は次の通りです。 数値 データ型 名称 消費メモリ 格納できる範囲 Integer 整数型 2…

VBA:ワークブックの保存

VBA

ワークブックを保存する場合は次のように行います。 "Book1"を『c:\』に"Book2.xls"として保存する Sub Test() Workbooks("Book1").SaveAs Filename:="c:\Book2.xls" End Sub "Book1"を『c:\』に"Book2.csv"としてCSV形式で保存する Sub Test() Workbooks("B…

VBA:ワークブックを閉じる

VBA

ワークブックを閉じる場合は次のように行います。 "Book1"を閉じる Sub Test() Workbooks("Book1").Close SaveChanges:=True End Sub ※新規作成時の場合、名前をつけて保存するか確認されます。 "Book1"を保存しないで閉じる Sub Test() Workbooks("Book1").…

VBA:ワークブックを開く

VBA

ワークブックを開く場合は次のように行います。 指定のディレクトリにあるファイルを開く Sub Test() Workbooks.Open Filename:="c:\test.xls" End Sub パスワードを指定してファイルを開く Sub Test() Workbooks.Open Filename:="c:\test.xls", Password:="…

VBA:ワークブックの作成

VBA

ワークブックの作成は次のように行います。 ワークブック新規作成 Sub Test() Workbooks.Add End Sub

VBA:ワークシートの削除

VBA

ワークシートの削除は次のように行います。 アクティブなシートを削除する Sub Test() ActiveSheet.Delete End Sub "Sheet1"を削除する Sub Test() Worksheets("Sheet1").Delete End Sub シート削除時の確認ポップアップを非表示にする Sub Test() Applicati…

VBA:ワークシートのコピー

VBA

ワークシートのコピーは次のように行います。 アクティブなシートを"Sheet2"の後ろにコピーする Sub Test() ActiveSheet.Copy After:=Worksheets("Sheet2") End Sub "Sheet1"を"Sheet2"の後ろにコピーする Sub Test() Worksheets("Sheet1").Copy After:=Work…

VBA:ワークシートの移動

VBA

ワークシートの移動は次のように行います。 アクティブなシートを"Sheet2"の後に移動する Sub Test() ActiveSheet.Move After:=Worksheets("Sheet2") End Sub "Sheet1"を"Sheet2"の後に移動する Sub Test() Worksheets("Sheet1").Move After:=Worksheets("Sh…

VBA:ワークシート名の変更

VBA

ワークシート名の変更は次のように行います。 アクティブなシートのシート名を変更する Sub Test() ActiveSheet.Name = "シート名" End Sub "Sheet1"のシート名を変更する Sub Test() Worksheets("Sheet1").Name = "TEST" End Sub

VBA:ワークシートの追加

VBA

ワークシートの追加は次のように行います。 先頭にシートを追加する Sub Test() Worksheets.Add End Sub "Sheet2"の前にシートを追加する Sub Test() Worksheets.Add Before:=Worksheets("Sheet2") End Sub "Sheet2"の後にシートを追加する Sub Test() Works…

VBA:セルの削除

VBA

セルの削除は次のように行います。 Sub test() Range("A1").Delete End Sub セルの削除後のシフトについてはセルの挿入と同様の仕組みです。 VBA:セルの挿入http://tyoshikawa1106.hatenablog.com/entry/2012/09/30/214433

VBA:セルの切り取り

VBA

セルの切り取りは次のように行います。 Sub test() Range("A1").Cut Destination:=Range("F5") End Sub サンプルでは"A1"の値を切り取り"F5"に貼り付けます。

VBA:セルのコピー

VBA

セルのコピーは次のように行います。 Sub test() Range("A1").Copy Destination:=Range("F5") End Sub サンプルではセル"A1"の値をセル"F5"にコピーします。

VBA:セルの挿入

VBA

セルの挿入は次の方法で行います。 引数なし Sub test() Range("A1").Insert End Sub 行の挿入 Sub test() Range("A1").EntireColumn.Insert End Sub 列の挿入 Sub test() Range("A1").EntireRow.Insert End Sub 引数を指定しない場合、列数と行数の関係で挿…

VBA:セルのクリア

VBA

セル内のクリアは次の方法で行います。 セル内の値や数式等を全てクリアする Sub test() Range("A1").Clear End Sub セル内の数式と文字列のみクリアする Sub test() Range("A1").ClearContents End Sub セル内の書式のみクリアする Sub test() Range("A1").…

VBA:セルの列指定

VBA

列の指定は次のように行います Sub test() Range("B2:E5").EntireColumn.Value = "AAA" End Sub サンプルだとB列からE列までのセルに値をセットします。 次のような指定も可能です。 Sub test() Range(Cells(2, 2), Cells(5, 5)).EntireColumn.Value = "AAA"…

VBA:セルの行指定

VBA

セルの行指定は次のように行います。 Sub test() Range("A2:A5").EntireRow.Value = "AAA" End Sub サンプルの場合、2行目から5行目までのセルに値をセットします。 Aの部分の指定は無視されるようです。 次のように指定する方法もあります。 Sub test() Ran…

VBA:セルの範囲指定

VBA

セルの範囲指定は次の方法で行います Rangeプロパティ指定方法① Sub test() Range("A1", "E7").Value = "AAA" End Sub Rangeプロパティ指定方法② Sub test() Range("A1:E7").Value = "AAA" End Sub Cellsプロパティ指定方法 Sub test() Range(Cells(1, 1), C…

VBA:プロパティの一括指定

VBA

一つのプロパティに対して一括で指定する場合、次の方法で行います。 Sub test() With Worksheets("Sheet1") .Activate .Range("A1").Value = "HelloWorld" .Range("A1").RowHeight = 60 .Range("A1").ColumnWidth = 20 End With End Sub

VBA:セルの幅と高さの指定

VBA

セルの幅と高さは次の方法で指定できます。 Rangeプロパティで指定する方法 Sub test() Worksheets("Sheet2").Range("C2").RowHeight = 60 Worksheets("Sheet2").Range("C2").ColumnWidth = 40 End Sub Cellsプロパティで指定する方法 Sub test() Worksheets…

VBA:シートの指定

VBA

処理を行うシートを選択するには次の方法で行います。 Sub test() Worksheets("Sheet3").Activate End Sub サンプルの場合、"Sheet3"というシートが選択されます。

VBA:セルに値をセット

VBA

次の方法でセルに値をセットできます。 ①Rangeプロパティで指定 Sub test() Range("A1").Value = "Hello World" End Sub ②Cellsプロパティで指定 Sub test() Cells(1, 1).Value = "Hello World" End Sub

VBA:メッセージボックス表示

VBA

メッセージボックスは次の方法で表示できます。 Sub test() MsgBox ("Hello World") End Sub

VBA:Visual Basic Editor

VBA

Alt + F11でVisual Basic Editorを起動できます。 Visual Basic Editor起動後、F5でマクロを実行できます。 起動後は挿入→標準モジュールで標準モジュールを追加できます。 標準モジュールでコードを書くみたいです。 コードを書くときは次のように宣言しま…