ますたあの遊び部屋

パソコンのソフト・ハード関連、写真、イラスト他のブログです。

パソコン教室久々に行ったら、いきなりテスト

2020年06月14日 | パソコン講習会

暫くパソコン教室に行けてなかったので、昨日連絡してみたら、席が空いてますよ~。

とのことでしたので、行ってきました。

 

開始早々に、マクロのテストだったので、さすがに面食らってしまった。(^^;

頭の中がマクロになっていないと、ちょっときついですね。

 

問題は

住所録の中の住所から、4文字目に県のある(神奈川県とか)住所は、住所左から4文字を抽出し、

4文字以外の都道府県は3文字を抽出してください。

また、市町村以下の住所は、市町村のセルに抽出してください。

というような問題文でした。(画像は、自宅に戻って作ったシート)

 

当然、For ~ Next 構文とIF構文を使ったマクロになります。

実際の抽出では、Left と Mid で抽出だろうな~と、大体の構想はすぐにできました。

がっ、「4文字目に県がある」の条件式が思い浮かばない...。(+_+)

Instr を使うのかと思い込んでしまったので...。

しかし、なぜかうまくいかないので、途中でMid 関数に切り替えて、県を抽出して= "県" としようかと。

マクロが完成するまでに凄い時間が掛かってしまって、、、

まあ、自宅でやるのとは、やっぱり違いますからね。

 

こんなのね。

この中の

Mid(Cells(i, "D"), 4, 1) = "県" 

こんな簡単な条件式なのにね。

超難産だった。(^^ゞ

でも、Cells(i, "F") = Mid(Cells(i, "D"), 5) の

Mid関数の使い方で、抽出文字数をワザと入れない使い方をすると

指定した文字以降をすべて抽出するになるとのこと

よ~~く憶えました。

苦労すると頭にしっかり刻み込まれますよね。

 

今日どうしても納得がいかないので、、、

Instr 関数でできない訳がないよなと考え

実際にマクロを組んでみました。

すると、あっさりとできてしまって...。(^^;

こんなのね。

If InStr(Cells(i, "D"), "県") = 4 Then

というのを最初にイメージしました。

なぜうまく動かなかったかは、今となっては分かりませんが。

こちらの方が問題文に対してストレート(素直)な気がします。

まあ、正しく動けばどちらでも良いんですけどね。

検証できたので気が済んだ~~。(^^ゞ

コメント (2)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« マスクにゴム手袋で買い出し | トップ | IDとパスワードの管理 »
最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
いきましたか (tenjin)
2020-06-18 06:58:43
コロナ自粛解除になり広がりますね。
いきなりマクロこれは、こころの準備ができていないからきついですね。3114
返信する
tenjinさん (ますたあ)
2020-06-18 14:13:08
流石に、いきなりテストでは
頭が付いていきませんよね。(^^;
返信する

コメントを投稿