VBA備忘録

VBAソースの備忘録。当面Excelのみ。

例題

フォルダ内のファイルを取得する

前提条件 マクロ実行ブックが格納されているフォルダの、ファイルを全て取得 注意事項 フォルダ内からファイルを取得するDir関数があるが、Dir関数は入れ子になる(Dir関数実行中に、内部で別のフォルダでDir関数を実行する)と戻り値が被るのであまり使用し…

複数の置換を一度に処理

複数の置換を一度に処理する 前提条件 A列のデータを、C、D列のデータ通りに置換する(共に実データは2行目から) A列、C,D列共に、行数に制限はないものとする 仕様 列は固定だが、定数としてソース上で定義する C,D列の語句一つ一つを、Range.Replaceを使…

Dialogでフォルダを指定

読み込む、または保存などで、任意のフォルダを指定する 前提条件 Dialogを表示し、フォルダを指定する Dialog上でキャンセルボタンを押下した場合は、処理を行わない 初期表示DialogはActiveWorkBookのフォルダか否か選べる 仕様 初期表示Dialogに指定する…

Excelファイルをcsvデータにして保存

Excelファイルをcsvデータとして保存する 前提条件 現在開いているExcelファイル、シートが対象 同フォルダに保存 Excelファイルとcsvデータのファイル名は同一(拡張子のみ異なる) 問題点 csvに保存した瞬間、開いていたExcelファイルがcsvファイルにすり…

AccessデータをExcelにコピーし「折り返して全体を表示する」を解除

AccessのデータをExcelに貼り付ける際、 ↓ 貼り付け ↓ このままでは見栄えが悪いので、以下の処理を行う ①セルの書式設定で「折り返して全体を表示する」のチェックを外す ②列幅を自動調整 この①、②を実行する関数 Sub AccessToExcelFormat() '「折り返して…

セル書式を書き出す

この表の各セルの書式を赤い罫線内に書き出す A列:文字列(A4のみ標準)、B列:数値、C列:通貨 1行目はタイトルなので値をコピー Dim lngMaxRow As Long Dim lngMaxCol As Long Dim i As Integer Dim j As Integer '表内最大行を取得 lngMaxRow = lngGetMa…

For Nextを使って表をコピー

この表を赤い罫線内にコピーする Dim lngMaxRow As Long Dim lngMaxCol As Long Dim i As Integer Dim j As Integer '表内最大行を取得 lngMaxRow = lngGetMaxRow(ActiveSheet) '表内最大列を取得 lngMaxCol = lngGetMaxCol(ActiveSheet) For i = 1 To lngMa…