Excel_VBA

Excel VBA フォーム表示時に指定したパスのファイルを一覧表示させる

フォームが表示される時、指定したパスのファイルの一覧を、 フォームの表示エリア内(リストボックスなど)に表示する。 下の①~③は、事前にExcelのワークシート上に設定しておく。 ※このメモ書きでは③についての処理は特に使用していません。 Private Sub Us…

Excel VBA 作成したフォームを表示(非表示)させる

①ファイル選択画面(フォーム)の表示 ここでは、Excelシート上に配置された「取り込みボタン」に 「cmdTorikomi」という名称を設定し、 そのボタンが押されたときの処理として記述しています。 Private Sub cmdTorikomi_Click() frmFselect.Show End Sub ②フ…

Excel VBA 日付の前月取得、形式変更、入力チェックなど

ここでは、ユーザーフォームに配置したテキストボックスに対して記述した処理のまとめです。 シート上のセルに対して使いたい時は、お手数ですが状況に合わせて読み替えてください。 1. 前月を取得する Private Sub UserForm_Activate() FrmMain.txtDate.Set…

Excel VBA フォントを変更する(Withステートメント)

指定した範囲のフォントを変更します。 プログラムの完了前など、見た目を整えるために使用することがあります。 ここでは「MS ゴシック」にフォントを指定しています。 Sub test() '範囲指定 Worksheets(1).Activate 'Sheet1をアクティブにする Range("A1…

Excel VBA フッターにファイル名を表示させる(Withステートメント)

フッターにファイル名を表示させるには、以下の2通り。 ●Excel VBA から表示させる コードの該当箇所に、Withステートメントを記述する。 ※下の例はフッター右側部分に表示させための記述のみ有効にし、 他の部分はコメントアウトにしている。 With ActiveSh…

Excel VBA セルの複数のプロパティに値をセットしたい(Withステートメント)

同じオブジェクトに対して値を設定する等、複数の処理を実行する方法としてWithステートメントを使用する。 With オブジェクト名 処理1 処理2 処理3 End With 例: Sheet1をアクティブにし、セルの複数のプロパティに値をセットしたい場合。 Sub test() With …

Excel VBA 文字列の中から先頭の数文字を指定して取り出したい(Left関数)

下記は「12345ABC」などの文字列から「12345」部分だけを取り出したい場合の一例。 1列目に格納された「11111xxx」形式の文字列から、先頭5桁の値を取り出し、隣の2列目にその値を格納する。 Sub a() Dim str As String Dim i As Integer str = "" i = 1 For…

Excel VBA 図形(オートシェイプ)の有無をチェックし、存在した場合は一括削除する(ActiveSheet.Shapes)

特定のシート上(ここでは1枚目)にオートシェイプが1つでも見つかった場合に一括削除させる処理です。 慣れた方なら繰り返し処理を考えて複数のシートにも適用させるように組むのが普通かもしれませんが、ここでは1つのシートで限定的に一括削除させる場合の…

Excel VBA 実行ボタンが押されたときに確認メッセージを表示させたい(MsgBox)

通常、プログラムの実行ボタンが押されると、記述した処理が順に動いていく。 しかし、誤って実行ボタンが押されることも想定し、本当にプログラムを実行するかをあらためて確認させることも、ユーザーの人的な動作を考慮した上でこのような記述が必要になる…

Excel VBA シート内の罫線を一括削除したい(Selection.Borders)

シート内の罫線を一括削除したい場合、「Selection.Borders」を記述する。 以下はその一例。 'シートを指定する(ここでは"Sheet1") Worksheets(1).Activate '全セル指定 Cells.Select '例: 下のように記述することで範囲指定できる。 'ActiveSheet.Range(Cel…

Excel VBA コピー&ペーストをコード内で記述する

コピー&ペーストをコード内で記述する。 以下はその一例。 「マスタ①」シートのA列2行目から最終行のデータを、「出力」シートのB2列目以降にコピー&ペーストさせている。 'コピー Sheets("マスタ①").Select Range("A2").Select Range(Selection, Selectio…

Excel VBA オートシェイプを一括削除する方法

通常、オートシェイプを一括削除する場合は以下のように行うが、複数のやり方をメモする。 ①マウスで図形を一つ選択する。 ②ctrl + A で図形を全選択。 ③Deleteキーで削除。 その他のやり方 ●マウスがない時など ①Shift + Ctrl + スペースキー で図形を全選…

Excel VBA エラー発生時にメッセージボックスを表示させる

エラー発生時にメッセージボックスを表示させる。 ON ERROR GO TO ステートメントなどを使用している場合、その処理を動かす前等に記述しておくとよい。 以下はその一例。 Dim IntRes As Integer 'ボタンの状態を表す数値用に宣言しておく 'IntRes → ボタン…

Excel VBA Excel終了時にメッセージを表示する(cmdExit_Click)

「cmdExit_Click」に必要な処理を記述することで、Excelを閉じて終了する時にメッセージを表示させることができる。 以下はその一例。 Private Sub cmdExit_Click() Dim intRtn As Integer intRtn = MsgBox("処理を終了します。" & vbCrLf & _ "よろしいです…

Excel VBA Excelを起動した時にプログラムを自動処理する(auto_open)

Excelを起動した時の処理 「auto_open」を作成し、ここにコードを記述することで起動時の処理を動かすことができる。 以下はその一例。 Sub auto_open() 'Sheet1をアクティブにする Worksheets(1).Activate 'シートの保護解除 ActiveSheet.Unprotect 'シート…

Excel VBA セルの内容更新時に、計算式を実行させない(Application.Calculation)

計算式が設定されたセルでは、プログラム実行中でもそのセルの値が変わるたびに計算式が実行されるので、計算式を設定する数や計算させる回数に比例して処理が遅くなる。 以下のように「Application.Calculation」を記述することで、処理開始時に計算式を手…

Excel VBA プログラム実行中はセルのデータ更新動作を非表示にする(Application.ScreenUpdating)

セルのデータ更新動作を非表示にし、全ての処理が終わった後に一括反映させるために記述する。 sub a () Application.ScreenUpdating = False ------------------------------ 処理を記述 ------------------------------ Application.ScreenUpdating = True…