Learning Note

できるようになったことを記録しています

配列を多次元配列に変換する

配列データを多次元配列に変換するための関数。多次元配列は途中で列数を増やすことができないため、事前に設定された列数より取り込む要素が多い場合は処理を終了するようにした。 使用例 Sub Main() Dim lineTxt As Variant lineTxt = ImportTxt("C:\bin\t…

配列から不要文字を削除して返す

関数を書くほどでもないかもしれないが、使用頻度はそこそこあるので作ってみた。 使用例 Sub Main() Dim testAry() As Variant: ReDim testAry(2) testAry(0) = "1,1" testAry(1) = "2,2" testAry(2) = "3,3" testAry = RemoveChar(testAry, ",") End Sub …

指定したテキストデータを一行ずつ配列に取り込む

指定したテキストデータを一行ずつ配列データに取り込む関数。 使用例 Sub Main() Dim lineTxt As Variant lineTxt = ImportTxt("C:\bin\test.txt") End Sub

指定したフォルダ以下の指定した種別ファイルパスを取得する

指定したフォルダの下位フォルダも再帰処理で検索対象とする関数。ポイントはStatic変数。再帰処理でDimを使うと消えてしまうので。 使用例 Sub Main() Dim filePath As Variant filePath = RecursionFile("C:\bin", "*.xlsx") End Sub

指定したフォルダから指定した種別のファイル名を取得する

Dir関数で指定フォルダの指定した種別のファイル名を取得する関数。配列の最後にブランクのデータが出来てしまうため、Loop終わりでもReDimしている。もっとスマートなやり方がないものか。 使用例 Sub Main() Dim fileName As Variant fileName = SearchFil…

別ブックからシートをコピーする

シートをコピーするにはCopyメソッドを使用します。例えば、同じブック内の"コピー元"という名前のシートを"Sheet3"という名前のシートの後ろにコピーする場合 Sheets("コピー元").Copy After:=Sheets("Sheet3") 別ブックに存在する"コピー元"シートをコピー…

ダイアログボックスで指定したExcelBookを開く

ExcelBookを開くにはWorkbooks.Openを使用する。書式 Workbooks.Open Filename:=開くBookのパス, ReadOnly:=False 開くBookのパスは直接記述しても良いが、先日の書いた"ダイアログボックスで指定ファイルのパスを取得する関数"を使うと汎用性が高まる。 kon…

ダイアログボックスで指定したフォルダのパスを返す

ダイアログボックスで指定したフォルダのパスを返す関数。 使用例 Sub Main() Dim folderPath As String folderPath = DecideFolder() If folderPath = "" Then Exit Sub End Sub

ダイアログボックスで指定したファイルのパスを返す

ダイアログボックスで指定したファイルの絶対パスを取得して返す関数。 使用例 Sub Main() Dim filePath As String filePath = DecideFile() If filePath = "" Then Exit Sub End Sub

copyコマンドでテキストファイルを結合する

copyコマンドは非常に便利。ファイルをコピーするだけでなく、ある特定のディレクトリ内にある複数のテキストファイルを結合するといった処理も可能。 書式 cd テキストファイルがあるディレクトリ copy *.txt 結合後ファイル名.txt

robocopyでファイルをコピーする

手動でのファイルコピーはミスが起こりやすいため、大量のデータを扱う場合などは「robocopy」というコマンドが便利。*WindowsVista 以降のOSに標準搭載。 書式 robocopy コピー元ファイルのパス コピー先ファイルのパス オプション 例えば、「C:\test」の…

Mac使いがWindows機を買いに行った話

少し前の話になります。現職へ転職した際、内定から入社まで少し日数があったため「この期間でVBAできるようにしておいて」と言われました。当時の私は空前のAppleブーム。家中Apple製品ばかりでWindows環境なんてありません。MacにBoot CampでWindowsをイン…