文字列の真ん中を取得してみる
前回は、ある文字列に対して「右端・左端から数えて何文字分」という文字列取得の
方法について見てみました。
そこで今回は当然のごとく(^^; 「文字列の中何文字分を取得」という方法について
一緒に見ていきましょう。
「ある文字列の任意の位置から、任意の文字数分だけ取り出したい」という場合には
"Mid関数"を使いますヽ(^-^ )
書式はこんな↓感じです
Mid(mojiretsu,mojiichi,mojisu)
mojiretsu の部分には取り出し元となる文字列が入りますね。
そして、mojiichi 。ここには"左端から数えて何文字目から取得するか"を指定する
数字を入れます。
最後の mojisu には、その名の通り"取得したい文字数"を入れます。
例えば 112233 という文字列から 22 を取り出したいなというような時の指定は
Mid("112233",3,2)
という書式になります。意味はお分かりになりますよね? d(^-^
「文字列"112233"の左から3番目の文字から数えて2文字分取得せよ」
ということです。
ここまでくれば残りのデータも完全に取得できますね(^-^
・製造年月日
・枝番
この2つを一気に取得してみましょう o(^-^)o
----------*
まず2つのデータを格納するための変数が必要ですね(^-^;
#いつものお約束です。
Dim SeizouDate As String '製造年月日
Dim Edaban As String '枝番
そしてMid関数を使って取得した文字列を変数に代入
SeizouDate = Mid(SeihinNo, 4, 6)
Edaban = Mid(SeihinNo, 10, 1)
最後に変数の値を順に隣のセルに入れていきましょうか。
Cells(1, 4).Value = SeizouDate
Cells(1, 5).Value = Edaban
さぁこれで完成!(^^) あとは実行して確認してみましょう。
どうですか?正しい実行結果が得られましたでしょうか_φ(^^ ?)
---------------- ここから ----------------------------------
Sub Henkan()
'*** 変数の宣言 ***
Dim SeihinNo As String '製品番号文字列
Dim SeihinCD As String '製品コード
Dim KoujoCD As String '工場コード
Dim SeizouDate As String '製造年月日
Dim Edaban As String '枝番
'*** 変数SeihinNoにセルA1の値を入れる ***
SeihinNo = Cells(1, 1).Value
'*** 変数SeihinNoの左端から3桁取り出す
SeihinCD = Left(SeihinNo, 3)
'*** 変数SeihinNoの右端から3桁取り出す
KoujoCD = Right(SeihinNo, 3)
'*** 変数SeihinNoの左4番目から6文字取り出す
SeizouDate = Mid(SeihinNo, 4, 6)
'*** 変数SeihinNoの左10番目から1文字取り出す
Edaban = Mid(SeihinNo, 10, 1)
'*** セルB1に製品コードを表示
Cells(1, 2).Value = SeihinCD
'*** セルC1に工場コードを表示
Cells(1, 3).Value = KoujoCD
'*** セルD1に製造年月日を表示
Cells(1, 4).Value = SeizouDate
'*** セルE1に枝番を表示
Cells(1, 5).Value = Edaban
End Sub
---------------- ここまで ----------------------------------
LEFT,RIGHT,MID と、この3つの関数をまず押さえておけば、セルに入
っている文字列の取得はだいたいできるようになるはずですヽ(^-^ )
もらってきたデータを分析しなければならないケースとかもあります
よね。そういうときに「このままぢゃ使えんっ!」というようなデータ
から、必要な部分だけ自由に取り出して使う・・。
な~んてことができれば、処理の幅もグンと広がりますし、何よりも
自分がラクになります d(^-^
私もよくあるんですよ、txtとかcsvの形式のファイルをポンと渡されて、
で中を見ると文字がズラーっとヽ( ´ー`)丿
#オフコンから出力されたデータは大抵そんな感じ
皆様のお仕事ではいかがでしょうか?
こういう処理もできるということで、何かのお役に立てていただければ
幸いです<(_ _)>
それでは次回までごきげんよぉ~(^^)/~
|
|
TOP > VBAでラクしたい ~Part 2~
|
|