今回はExcel VBAを用いて指定の文字列を改行や水平タブに自動変換する方法を解説します。
自動マクロ作成の背景
私自身、運用監視業務をやっていたのですが、監視ツール独特の文字コードが存在しており、検知メッセージの文字列を手動で変換していたことで工数に無駄があった。
なので指定の文字列を自動変換できないか模索してみたところ、VBAでExcelの文字コードに変換するマクロを作成することで文字列を自動変換できると考えた為、マクロを作成した。
前提条件
- Windows10を使用
- PCはDELLを使用
- Excelを導入していること。
- マクロを有効化していること。
料金
無料で実施可能。
自動化の概要
- 指定の文字列をExcelの文字コードに変換するVBAを書き込む。
- Excelのショートカットキーを新たに作成し、ショートカットキーにVBAマクロを割り当てる。
- 「改行」の文字列を削除し、改行する。
- 「水平Tab」の文字列を削除し、水平TABに変換。
- 「垂直TAB」の文字列を削除し、垂直TABに変換。
手順
VBAの画面で以下コマンドを入力する。
コマンドについて解説
- 「マクロ名を入力」の部分に任意のマクロの名前を入力する。
- Keyboard Shortcut:に新たに任意のショートカットキーのキーを入力する。
※下記サンプルコマンドではCtrl+jとしている。 - 「ActiveCell.Replace What:=""」のダブルクォーテーションの間に変換したい文字列を入力する。
- 「& Chr(数字) &」で変換したいExcel文字コードを入力する。
※Chr(10)は改行、Chr(9)は水平TAB、Chr(11)は垂直TABの文字コードとなる。
Sub マクロ名を入力()
'
' マクロ名を入力 Macro
' マクロ名を入力
'
' Keyboard Shortcut: Ctrl+j
'
ActiveCell.Replace What:="改行", Replacement:="" & Chr(10) & "", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveCell.Replace What:="水平TAB", Replacement:="" & Chr(9) & "", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveCell.Replace What:="垂直TAB", Replacement:="" & Chr(11) & "", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
動作確認
1、以下サンプルメッセージをExcelにコピペして下さい。
aaaaaaaaa改行aaaaaaaa改行改行aaaaaaaa水平TABaaaaaaaa垂直TABaaaaaaa
2、コピペしたセルを選択した状態で新しく作成したショートカットキーを入力する。
今回はCtrl+jを入力
3、下記のように文字列が変換したことを確認。
4、改行は一目で確認できるがTABの変換はExcel上では確認できないのでメモ帳へコピペして以下のように表示されたことを確認。
※メモ帳上では目視で垂直タブに変換されておりませんが、実際には変換されております。
終わりに
今回はExcel VBAを用いて指定の文字列を改行や水平タブに自動変換する方法を解説しました。
VBAは今まで使ったことが無く現場の業務改善をきっかけに初めて使いました。
もっとVBAの技術を深く学べばより自動化の幅が広がりそうなので、今後もVBAの勉強を進めていきたいと思います。
この記事が少しでもお役に立てれば幸いです。