VBA
VBA開発時にソースを複数行コメントアウトする方法があります。 ヘッダー部で右クリックを行い、編集をクリックします。 編集のウィンドウが表示されます。 その中にコメント ブロックと非コメントブロックのアイコンがあります。 コメントブロックで「'」を…
ファイルの存在判定もフォルダの判定と同じでDir関数を使います。 引数にvbDirectoryは必要ありません。 Dir(ファイルのパス) ファイルがなければ "" が返ってきて、あればファイルの情報が返ってきます。 ファイル存在判定のサンプルです。 If Dir(prmPath)…
フォルダの存在判定にはDir関数を使用します。 また引数にvbDirectoryを指定する必要があります。 Dir(フォルダのパス, vbDirectory) フォルダが存在しない場合は "" が返ってきます。 フォルダが存在する場合はフォルダの情報を返ってきます。 フォルダ存在…
ファイルの削除にはKill関数を使います。 Kill "c\TestFolder\text.txt" フォルダ内の全ファイルを削除する場合は次のような感じです。 '************************************* '* フォルダ内ファイル削除処理 '************************************* Priv…
引数の指定が長くなった時に改行したい場合は" _ "を使用します。 Private Sub getValue(prmText1 As String, _ prmText2 As String, _ prmText3 As String, _ prmText4 As String) _ の前には半角スペースも必要みたいです。
文字数の取得は「LEN」関数で行えます。 Len( String型変数 )
末尾に「;」を付けると出力に改行コードが含まれないとのことです。 なので自分で改行コードをつけ、その後に「;」をつけると好きな改行コードを 指定できます。 次のようになります。 Print #2, record & vbLf;
ユーザフォームの表示切り替えは次の方法で行います。 ユーザフォームを表示する UserForm.Show ユーザフォームを非表示にする(値を保持する) UserForm.Hide ユーザフォームを非表示にする(値を保持しない) Unload UserForm
次の変数宣言時にエラーが発生しました。 As Forlder As File 原因は参照設定のチェックがついていないことでした。 Microsoft ScriptRunTimeにチェックをつける必要があります。 参照設定はVisual Basicのツールから設定できます。
ブックやシートに入力する仕様の場合は、処理開始時に数式の再計算と画面の再描画を無効にすると効率が良くなります。 処理終了時には有効にするのを忘れないこと。 画面更新の停止 Application.ScreenUpdating = False 画面更新の再開 Application.ScreenUp…
自ブックの所在フォルダ情報を取得するには次の方法で可能です。 ThisWorkbook.Path サンプル Sub Test() MsgBox ThisWorkbook.Path End Sub
保存時に次の警告がでることがあります。 「プライバシーに関する注意:このドキュメントには、マクロ、ActiveXコントロール、XML拡張パックの情報、またはWebコンポーネントが含まれています。これらにはドキュメント検査機能で削除することができない個人…
変数も宣言の仕方によって有効範囲がきまります。 Public i As Integer 'パブリックモジュールレベルの変数宣言 Dim j As Integer 'プライベートモジュールレベルの変数宣言 Private Sub Test() Dim k As Integer 'プロシージャレベルの変数宣言 EndSub
プロシージャを宣言するときは、参照権限を指定する必要があります。 Public を宣言した場合、他のモジュールからでも参照可能になります。 Private を宣言した場合、他のモジュールからは参照不可になります。 宣言しない場合は、自動でPublicとして扱われ…
プロシージャとは処理単位の一つで 「Subプロシージャ」と「Functionプロシージャ」の2種類があります。 Subプロシージャは、戻り値を返すことはしません。 Functionプロシージャは、戻り値を返します。 Sub Test() intData = 1 Call SubTest(intData) intD…
VBAの計算式は次のように行います。 Dim 変数名 As データ型 使用出来る演算子は次のとおりです。 演算子 意味 + 加算 - 減算 * 乗算 / 除算 ¥ 除算の商 Mod 除算の余り ^ べき乗する
VBAで変数とデータ型を宣言するには、次のように行います。 データ型を宣言しない場合は、バリアント型として扱われます。 Dim 変数名 As データ型 VBAで使用できるデータ型は次の通りです。 数値 データ型 名称 消費メモリ 格納できる範囲 Integer 整数型 2…
ワークブックを保存する場合は次のように行います。 "Book1"を『c:\』に"Book2.xls"として保存する Sub Test() Workbooks("Book1").SaveAs Filename:="c:\Book2.xls" End Sub "Book1"を『c:\』に"Book2.csv"としてCSV形式で保存する Sub Test() Workbooks("B…
ワークブックを閉じる場合は次のように行います。 "Book1"を閉じる Sub Test() Workbooks("Book1").Close SaveChanges:=True End Sub ※新規作成時の場合、名前をつけて保存するか確認されます。 "Book1"を保存しないで閉じる Sub Test() Workbooks("Book1").…
ワークブックを開く場合は次のように行います。 指定のディレクトリにあるファイルを開く Sub Test() Workbooks.Open Filename:="c:\test.xls" End Sub パスワードを指定してファイルを開く Sub Test() Workbooks.Open Filename:="c:\test.xls", Password:="…
ワークブックの作成は次のように行います。 ワークブック新規作成 Sub Test() Workbooks.Add End Sub
ワークシートの削除は次のように行います。 アクティブなシートを削除する Sub Test() ActiveSheet.Delete End Sub "Sheet1"を削除する Sub Test() Worksheets("Sheet1").Delete End Sub シート削除時の確認ポップアップを非表示にする Sub Test() Applicati…
ワークシートのコピーは次のように行います。 アクティブなシートを"Sheet2"の後ろにコピーする Sub Test() ActiveSheet.Copy After:=Worksheets("Sheet2") End Sub "Sheet1"を"Sheet2"の後ろにコピーする Sub Test() Worksheets("Sheet1").Copy After:=Work…
ワークシートの移動は次のように行います。 アクティブなシートを"Sheet2"の後に移動する Sub Test() ActiveSheet.Move After:=Worksheets("Sheet2") End Sub "Sheet1"を"Sheet2"の後に移動する Sub Test() Worksheets("Sheet1").Move After:=Worksheets("Sh…
ワークシート名の変更は次のように行います。 アクティブなシートのシート名を変更する Sub Test() ActiveSheet.Name = "シート名" End Sub "Sheet1"のシート名を変更する Sub Test() Worksheets("Sheet1").Name = "TEST" End Sub
ワークシートの追加は次のように行います。 先頭にシートを追加する Sub Test() Worksheets.Add End Sub "Sheet2"の前にシートを追加する Sub Test() Worksheets.Add Before:=Worksheets("Sheet2") End Sub "Sheet2"の後にシートを追加する Sub Test() Works…
セルの削除は次のように行います。 Sub test() Range("A1").Delete End Sub セルの削除後のシフトについてはセルの挿入と同様の仕組みです。 VBA:セルの挿入http://tyoshikawa1106.hatenablog.com/entry/2012/09/30/214433
セルの切り取りは次のように行います。 Sub test() Range("A1").Cut Destination:=Range("F5") End Sub サンプルでは"A1"の値を切り取り"F5"に貼り付けます。
セルのコピーは次のように行います。 Sub test() Range("A1").Copy Destination:=Range("F5") End Sub サンプルではセル"A1"の値をセル"F5"にコピーします。
セルの挿入は次の方法で行います。 引数なし Sub test() Range("A1").Insert End Sub 行の挿入 Sub test() Range("A1").EntireColumn.Insert End Sub 列の挿入 Sub test() Range("A1").EntireRow.Insert End Sub 引数を指定しない場合、列数と行数の関係で挿…