Excelマクロ・VBA達人養成塾 小川です。
達人養成塾のエクセルマクロ・VBA講座では、受講後も、実践的なマクロの作り方動画講座を一定期間配信しています。
今日は、ある受講生の方からの、その動画へのフィードバックとそれへの返信をご紹介。
一応、僕の考えたモノを載せておきます。
'[3] Sub test() Dim cel Dim eki Dim sen Dim gyo For gyo = 2 To 51 cel = Range("E" & gyo).Value sen = InStr(cel, "線") eki = InStr(cel, "駅") Range("H" & gyo).Value = Left(cel, sen) Range("I" & gyo).Value = Mid(cel, sen + 1, eki - sen) Range("J" & gyo).Value = Mid(cel, eki + 2) Next End Sub '[4] Sub test1() Dim ku Dim shi Dim cel Dim gyo For gyo = 2 To 11 cel = Range("C" & gyo).Value ku = InStr(cel, "区") shi = InStr(cel, "市") If ku > 0 Then Range("F" & gyo).Value = Left(cel, ku) Range("G" & gyo).Value = Mid(cel, ku + 1) Else Range("F" & gyo).Value = Left(cel, shi) Range("G" & gyo).Value = Mid(cel, shi + 1) End If Next End Sub '[5] Sub test2() Dim sen Dim cel Dim mono Dim gyo For gyo = 2 To 11 cel = Range("E" & gyo).Value mono = InStr(cel, "ル") If mono > 0 Then Range("H" & gyo).Value = Left(cel, mono) Range("I" & gyo).Value = Mid(cel, mono + 1) Else sen = InStr(cel, "線") Range("H" & gyo).Value = Left(cel, sen) Range("I" & gyo).Value = Mid(cel, sen + 1) End If Next End Sub
ちなみに、それぞれどんなお題かというと。
[3]は、以下のデータで、「○○線」と「××駅」、「歩n」とに分割してH~J列に投入するというもの。
|E列 |
----------------------------------
1 行目 |路線駅名 |
----------------------------------
2 行目 |小田急線代々木八幡駅歩4|
----------------------------------
3 行目 |浅草線泉岳寺駅歩4 |
----------------------------------
4 行目 |大江戸線赤羽橋駅歩4 |
----------------------------------
5 行目 |銀座線表参道駅歩10 |
----------------------------------
6 行目 |日比谷線広尾駅歩8 |
----------------------------------
7 行目 |山手線渋谷駅歩6 |
----------------------------------
8 行目 |山手線品川駅駅歩1 |
----------------------------------
9 行目 |日比谷線広尾駅歩13 |
----------------------------------
10行目 |日比谷線神谷町駅歩6 |
----------------------------------
11行目 |千代田線赤坂駅歩3 |
----------------------------------
12行目 |世田谷線上町駅歩1 |
----------------------------------
[4], [5]は、以下のように「区」または「市」を含む住所や
「線」という文字を含まない路線があった場合、どう分割するか、
といった課題です。
|C列 |D列 |E列 |
------------------------------------------------------------------------
1 行目 |市区町名 |構造等 |路線駅名 |
------------------------------------------------------------------------
2 行目 |渋谷区代々木5丁目|RC/2/6F |小田急線代々木八幡駅歩4 |
------------------------------------------------------------------------
3 行目 |港区高輪2丁目 |RC/3/3F |浅草線泉岳寺駅歩4 |
------------------------------------------------------------------------
4 行目 |品川区東品川2丁目|RC/4/5F |東京モノレール天王洲アイル駅歩3|
------------------------------------------------------------------------
5 行目 |川越市広栄町2丁目|RC/1/9F |東武東上線川越駅歩18 |
------------------------------------------------------------------------
6 行目 |港区西麻布4丁目 |SRC/7/10F|日比谷線広尾駅歩8 |
------------------------------------------------------------------------
7 行目 |渋谷区渋谷3丁目 |RC/6/7F |山手線渋谷駅歩6 |
------------------------------------------------------------------------
8 行目 |川越市連雀町4丁目|SRC/3/9F |西武新宿線本川越駅歩8分 |
------------------------------------------------------------------------
9 行目 |渋谷区広尾3丁目 |SRC/6/9F |日比谷線広尾駅歩13 |
------------------------------------------------------------------------
10行目 |川越市松江町1丁目|RC/2/4F |西武新宿線本川越駅歩8 |
------------------------------------------------------------------------
11行目 |港区赤坂2丁目 |SRC/2/13F|千代田線赤坂駅歩3 |
------------------------------------------------------------------------
まー、それはともかく。以下は、僕から彼にした回答。
毎日、楽しんでいますね (^^
マクロ、ざっと拝見しました。いただいたモノでも悪くないですよ。
というか、自力で考え抜いて、部品を組み合わせてなんとかできることが
いちばん重要です。
表の中にある例外的なデータがどういう状態かによって、
ロジック(IT用語でアルゴリズムと言います)もまた変わってきます。
同じゴールに到達するにしても、やり方はいろいろあってよいですし、
いろいろ思いつく人のほうが上達は早いです。
世間でプログラミング(というか、クリエイティブを発揮して
自力で仕組みを作り上げること)のセンスがいまいち無い人
は、
どうしても、「ひとつの正解があって、それに到達すること」だけを
追い求めちゃう傾向があります。
ですが、同じデータは二度とありませんし、
同じ仕事は二度とありません。
そういうひとつひとつのケースで、
ロジックを考えて、ひとつひとつの部品を確実に
作って組み立てられるスキルが必要です。
しかし逆に言えば、そういうすべてが揃っていれば、
あとはどうにでもなる、とも言えます。
余談ですが。。そういう工夫をする気概のない人に限って、
「マクロは私の仕事には使い道がありませんでした」
とか言い出すんですよね。。
ちょっと手直しすればすぐ使えそうな状況だったりもするんですが (^^;
..ということで。
今日も、ちょっと辛口だったかもしれませんが。
お知らせというか、打診です。
ひさしぶりに、以下のセミナーやろうかと検討中です。
どれかに、ご興味おありの方、どのくらいいらっしゃいますかね。
イヤでもWindows操作とExcel操作が早くなるワークショップ
http://www.exvba.com/closed/moushikomi_winxls.php
親指シフト達人養成塾
http://www.exvba.com/oyayu/index.php
Excelデータ分析7つの上級技
http://www.exvba.com/exbunseki/index.php
今のところ実施予定日は、僕の中では以下の感じ:
イヤでもWindows操作とExcel操作が早くなるワークショップ
東京9月29日
親指シフト達人養成塾
東京9月30日、大阪11月10日
Excelデータ分析7つの上級技
東京9月30日、大阪11月10日