非表示にできる< 目次 >
はじめに
EXCEL VBAで役に立つコードについて触れようと思います。
本ブログ記事は、Crowd Works で納品まで行い、実際にお金になったコードを元に紹介しますのでご安心いただければと思います。
本記事でできること
EXCEL-VBAにおけるDOM(Document Object Model)でのブラウザ制御などで格納したString変数から、
文字列から 「文字列」のみを抽出することができます。
例えば、文字列と数字が混合している場合で「数字いらんないなー」というときに本記事のコードをお試し下さい。
今回はFunction〜End Functionとしての紹介ですが、
後述にSub〜End Sub内でのFunctionの使い方についても触れております。
参考:別記事
コード(解説はコード内のコメント)
コードはこんな感じです。
Functionで定義してあげることで、Sub〜End Sub内で 簡単に呼び出すことができます。
呼び出し方は、後述しております。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
'******************************************************************* '* 名称: strExtract '* 効果: 数字のみ抽出 '* 引数: numberValue:数字を除外したい対象文字列(String) '****************************************************************** Function strExtract(numberValue As String) As String '変数の準備 Dim i As Integer Dim strText As String 'Len で文字数が分かる = 1 to 文字列(最終文字)まで For Nextで影響させる。 For i = 1 To Len(numberValue) 'Midで文字列を左から順にstrTextに格納 strText = Mid(numberValue, i, 1) 'もしstrText[0-9]に該当する場合は無視。 If strText Like "[0-9]" Then '[0-9]として認識しないものを変数strExtractに格納していく Else: strExtract = strExtract & strText End If Next i End Function |
実際の使用方法
上記で挙げたコードは、Funcitonコードのため、
VBAで実際に使用するためには Sub 〜 End Sub 内で記載してあげる必要があります。
それが↓こんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub 抽出してみる() Dim wb1 As Worksheet '適当にwb1 に格納 Set wb1 = ActiveWorkbook.Worksheets("Sheet1") 'Functionで作成したstrExtractを呼び出す方法 'これにより Cells(1,1)=A1セル の 文字列から数字を除外できる wb1.Cells(1, 1) = strExtract(wb1.Cells(1, 1)) End Sub |
あんまりピンとこないかもしれませんので、スクリーンショットを撮ってみました。
こちらを眺めてもらえれば、理解が深まるかなと。
おわりに
いかがでしたでしょうか。
今後も 便利なコードについて紹介していこうと思います。
末筆とはなりますが、ここまでの長文をお読みいただきありがとうございました。
本記事の読者の悩みが少しでも解消できたのあれば、筆者としては結構ハッピーです。
今後とも、有益な情報を発信してまいりますので、NakamuraBlog(ナカログ)をよろしくおねがいします。
でわでわ。
ちょっとだけ宣伝
プログラミング学習(全般)における間違えない学習方法を理由を含めて説明した記事がございます。
当然 無料ですので、学習方法において不安に感じている方がいらっしゃれば 是非ご覧くださいませ。