EXCEL、VBAプログラミング入門10~文字列操作(len,left,right)~第2回目

以下は当記事に関連する動画です。本動画に関連する動画はすべてニコニコチャンネルにて閲覧可能です。
https://ch.nicovideo.jp/ai-light

本講座のシリーズは以下にて閲覧可能です。
https://www.nicovideo.jp/series/231329

今回は、前回に引き続きEXCEL VBAの文字列操作について説明をします。今回は、以下の内容について解説をさせていただきます。
1)Right関数
2)ステップ実行でプログラムの動作を確認する

前回の説明で、Len関数、Left関数について説明をしました。

また、下図の図1の「数値の表示」関数のプログラム処理について前回までで
If Len(ワーク) > 1 And Left(ワーク, 1) = “0” And Left(ワーク, 2) <> “0.” Then
について説明を行いました。

図1.「数値の表示」関数について

今回は
ワーク = Right(ワーク, Len(ワーク) – 1)
から説明を行います。

2)Right関数
Right関数の引数は以下の通りとなります。
Right(文字列, 文字数)
与えられた「文字列」に対して、右側から指定された「文字数」の文字列を抽出します。

例えば、
Dim 抽出文字列 As String
抽出文字列 = Right(“あいうえおかきくけこ”, 3)
とすると、「抽出文字列」変数には、”くけこ”がセットされます。

今回の
ワーク = Right(ワーク, Len(ワーク) – 1)
では、「ワーク」変数に入っている値から「Len(ワーク) – 1」の文字数分を右側から取得することになります。Len(ワーク)により「ワーク」変数の文字列の文字数を取得します。さらに、その文字列から「1」を引きます。

例えば、ワークに”0123456”という文字が入っていたとします。Len(ワーク)にて、ワークの文字列の文字数を取得しますので、結果は「7」となります。結果、「Len(ワーク) – 1」は「6」となります。

つまり、”0123456”の右から6桁を取得しますので、結果は” 123456”となります。この処理によって、ワーク変数の左側の1文字をカットした値を取得できます。

2)ステップ実行でプログラムの動作を確認する
プログラムは変数に種々の値が代入されて処理が行われることが前提なので、プログラムは抽象的です。そのため、どのような処理が行われているかを解析するには、具体的な数値を例として、その数値がプログラムの1行1行でどのように処理が行わているかを確認していくとよいです。

そのような場合に活用するとよいのが、ステップ実行という機能です。この機能で実際にプログラムを動かしながら、変数に入っている値などを確認することが出来ます。

VBAエディターのプログラム部分の左部分の灰色の部分をクリックすると下図のように灰色の部分に茶色の丸が設定されます。これがブレイクポイントになります。ブレイクポイントを設定するとプログラムを動かした際に、その部分で一旦、停止します。

図2.ブレイクポイントの設定

図3の通り、計算機の実行シートでボタン「0」を押した際の処理は以下のようになります。

図3.プログラムがブレイクした図

プログラムが動き、ブレイクポイントを設定した場所で、一旦、プログラムが停止します。停止した箇所が図3の通り、文字の背景が黄色になります。

また、この状態でLen(ワーク)にマウスのカーソルを合わせると
Len(ワーク)=1
と「Len(ワーク)」に入っている値を確認できます。

ちなみにワークには「0」が入っています。これも、同様にワーク変数にマウスのカーソルを合わせると確認することが出来ます。

Len(ワーク)は「1」ですから、
If Len(ワーク) > 1 And Left(ワーク, 1) = “0” And Left(ワーク, 2) <> “0.” Then
は条件が成り立ちません。ここで、「F8」キーを押すとステップ実行がされて、次のステップに処理が移動します。ただし、
ワーク = Right(ワーク, Len(ワーク) – 1)
は処理が行われませんので、
End If
の部分まで処理が移動します。

次に図4の通り、計算機の実行シートでボタン「1」を押した際には以下のようになります。

図4.イミディエイト

再度、図4の通り、ブレイクポイントを設定した箇所でプログラムが一旦、停止します。ここで、「ワーク」変数には「01」という値が入っています。

この状態で、VBAエディターの下部のイミディエイト欄に
? Left(ワーク, 1)
と入力して「Enter」キーを押すと、次の行に、Left(ワーク, 1)の値が確認できます。


ニコニコチャンネル(月額固定で見放題)
http://ch.nicovideo.jp/ai-light
本記事に関連する動画講座を閲覧できます。一部の動画は無料でも閲覧できます。

YouTubeチャンネル(無料動画配信中)
https://www.youtube.com/user/ailightcom
ITと経営に関する動画を配信しております。
よろしければ、チャンネル登録をお願い致します。

無料から学べる講座
https://www.ai-light.com/itkeiei/
本記事に関連する動画講座をセット販売しております。
その他、ITと経営に関する動画もセット販売しております。

格安ホームページ制作所
https://www.ai-light.com/hp2
インターネットマーケティングに関する記事が無料で閲覧可能です。

株式会社アイライト公式HP
https://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)

ITでお困りのことがございましたら、まずはご相談(コンサルティング)
https://www.ai-light.com/itconsulting.html


弊社は、主に中小企業様向けの業務システム開発ホームページ制作パソコンサポートコンサルティングなど、ITに関する様々なサービスを格安で提供しております。
特に小規模な業務システム開発の分野では、主にAccess(アクセス)を利用した柔軟で効率的な開発を得意としており、関西でダントツの実績があります。

業務システム開発に関しては、以下のような内容で対応しております。
・顧客管理などの単機能なシステムは20万円~50万円が多い。
・受注から入金まで業務全体システムで100万円~350万円ぐらいが多い。
・Access(アクセス)-SQLserverで大規模システム開発は350万円~1500万円が多い。

詳細は、Access(アクセス)、Excel(エクセル)、WEBサイト製作による小規模システム開発のページをご参考ください。

大阪商工会議所からの推薦を受けて、中小企業庁運営の中小企業支援事業に専門家として登録されました。
通称ミラサポ。3回まで無料でのコンサルティングが可能です。ご興味がある方はご連絡ください。
https://www.mirasapo.jp/


(近畿大学にて非常勤講師も務めたバリバリの技術屋が経営する会社)

Access(アクセス)Excel(エクセル)SQL server バーコード Webシステムを使った業務システムのシステム開発の無料相談を受付中

株式会社 アイライト 担当:内藤 響(Naito Ko)
〒550-0005 大阪市西区西本町1丁目5番9号 日清ビル 5F
(四つ橋線 本町駅 24番出口すぐ)
まずは、メール・電話でご相談ください。
TEL : (06) 6599-8890 E-mail : info@ai-light.com
お電話が混んでいる場合が多いので、つながりにくい場合は
TEL : (06) 6535-5117までお願いします。