マクロでいこう! ~ Excel活用HomePage ~

VBAでラクしたい ~Part 2~

こちらのコーナーでは、VBAの使い方を中心にご紹介していきます。
作者自身の経験から書いておりますので、本とかとは違ったコトを
書いてるトコロもあるかもしれません。 そういう場合は、良さそうな方を信じましょう(^_^;
TOPVBAでラクしたい ~Part 2~ > 文字列の真ん中を取得してみる

文字列の真ん中を取得してみる

前回は、ある文字列に対して「右端・左端から数えて何文字分」という文字列取得の
方法について見てみました。

そこで今回は当然のごとく(^^; 「文字列の中何文字分を取得」という方法について
一緒に見ていきましょう。


「ある文字列の任意の位置から、任意の文字数分だけ取り出したい」という場合には
"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の形式のファイルをポンと渡されて、
で中を見ると文字がズラーっとヽ( ´ー`)丿
#オフコンから出力されたデータは大抵そんな感じ

皆様のお仕事ではいかがでしょうか?

こういう処理もできるということで、何かのお役に立てていただければ
幸いです<(_ _)>


それでは次回までごきげんよぉ~(^^)/~





TOPVBAでラクしたい ~Part 2~
Copyright (C) 2006 マクロでいこう!. All Rights Reserved.