2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Excel VBAで指定の文字列を改行や水平タブに自動変換する方法

Last updated at Posted at 2021-07-16

今回は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を入力
aaaaaaa.png
3、下記のように文字列が変換したことを確認。
bbbbbbbbbbbbbbbbbbbbb.png

4、改行は一目で確認できるがTABの変換はExcel上では確認できないのでメモ帳へコピペして以下のように表示されたことを確認。
※メモ帳上では目視で垂直タブに変換されておりませんが、実際には変換されております。
ccccccccccccccc.png

終わりに

今回はExcel VBAを用いて指定の文字列を改行や水平タブに自動変換する方法を解説しました。
VBAは今まで使ったことが無く現場の業務改善をきっかけに初めて使いました。
もっとVBAの技術を深く学べばより自動化の幅が広がりそうなので、今後もVBAの勉強を進めていきたいと思います。
この記事が少しでもお役に立てれば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?