CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

EXCELの小技その3

2024-07-12 22:53:21 | EXCEL
テキストファイルを下記のマクロが組まれたExcelブックで開き、マクロを実行して日付を書き換える。

Attribute VB_Name = "Module5"

Sub Macro3()

Attribute Macro3.VB_ProcData.VB_Invoke_Func = "h 14"

'

' Macro3 Macro

'

' Keyboard Shortcut: Ctrl+h

'

Range("A3").Select

ActiveCell.FormulaR1C1 = ""

Range("A3").Select

Selection.NumberFormatLocal = "G/標準"

Range("A3").Select

ActiveCell.FormulaR1C1 = "令和6年7月12日"

ActiveWorkbook.Save

ActiveWindow.Close

End Sub

1行目は案件名
2行目は空行
3行目は年月日
4行目は空行
5行目は作業内容
となっている。

3行目にユーザー書式設定で前の日付を定型とし、日付が残ったままでマクロを実行したら年号と月日が入れ替わって順番が逆になるというバグが見つかった。
どういうことかというと、マクロを実行する前にユーザー書式設定で令和6年7月11日と書かれてある所にテキストファイルをドロップしてマクロを実行したら令和6年7月12日ではなくて、7月12日令和6年となってしまったのだ。

ユーザー書式設定を解除&消去してG/標準という書式に戻し、書かれていた令和6年7月11日を消してからマクロを実行すると、そのバグは解消された。

また、GUIでフォルダごと読み込んで一括変換する方法は、何度やっても文字化けが発生してバグが解消されなかったので、エクセルブックに書き換えるテキストファイルをドロップしてショートカットキーを押すと、書き換え&上書き保存&ファイルクローズという3つのタスクを同時にこなすようにした。

合計413のファイルを一気にExcelマクロファイルにドロップするとフリーズするので80ファイルずつドロップしてマクロを実行した。
ちなみに一連の操作を5分割で行うと所要時間は3分であった。
80ファイルを選び、ドロップ。→Ctrl+hを80連打→書き換わっているかどうか確認(メモ帳を開いて413ファイルを一気にドロップして開き、確認しながらクローズしていく)の流れで15分で413ファイルの書き換えを終わらせることができた。

その他、習得した技はCtrl+wでWindowをクローズ、一つ目のファイルをシングルクリック→2つ目以降のファイルをCtrlを押しながらシングルクリックすることにより、複数の任意のファイルを選択してコピペ等の操作を同時に行えることを覚えた。