VBA100本ノック14本目を動画で解説してみました。Excelの神髄さんの模範解答はコチラ
問題
#VBA100本ノック 14本目
客先へ送付するブックを作成します。
シート名に、「社外秘」、の文字が含まれるシートを削除してください。
他のシートは計算式を消して、値だけにしてください。
※シート間参照の数式あり。
※条件付き書式・入力規則は未使用。
※対象はアクティブブックで構いません。
動画の流れ・解答
■考えた流れ
0:00 冒頭、問題確認
1:42 “社外秘”を含むシートのみ処理する
3:14 “社外秘”を含むシートを削除する
6:06 “社外秘”シート以外を値貼りにする
※動画内での回答
Sub ノック13本目()
Application.Calculation = xlManual
Dim ws As Worksheet
'各シートを順に処理
For Each ws In ThisWorkbook.Worksheets
'シート名に「社外秘」という文字が含まれる場合は削除する
If InStr(ws.Name, "社外秘") > 0 Then
Application.DisplayAlerts = False '警告メッセージを非表示
ws.Delete 'シートを削除
Application.DisplayAlerts = True '警告メッセージを再表示
Else
ws.UsedRange.Value = ws.UsedRange.Value
End If
Next ws
End Sub
今回は初めてChatGPTさんを使って解いてみるが…!!
使うのもだけど教えるのも難しいな!
色々思考錯誤中だ!

ついにChatGPTさんを
使うんですね!!

俺は主義に反するから
使わないけどな!

あっそ…
“社外秘”を含むシートのみ処理する
よし!じゃあまずは!!
社外秘って文字を含むシートのみ処理していくぞ!
ChatGPTさん…起動!!

結果がこちら…!
コードだけでなくコメントまで付けてくれるとは…驚き…

ただし!何万回でも言うぞ!!
「ChatGPTは間違える可能性もある!!」
「いかにも合ってる風に答えてくるけど…ちゃんと確認しよう!!」

とまあ、これくらいの簡単なコードなら、
ササっと聞いちゃうのが速いかもね~!
“社外秘”を含むシートを削除する
うしゃ!!お次!!
社外秘を含むシートを”処理”→”削除”するコードにしたい!!
そんな時は…!
追加で聞いちゃえばいいのよ。
「このコードを削除するコードに変えて」ってね。まじかよ凄すぎ。


まじか~もうできた!!
ただし!!
なんでApplication.DisplayAlertsをFalseにしてるかなど、
分からない人はそこをググれ!もしくはChatGPTに追加で質問しろ!

結果は…まぁ、ちゃんと削除出来てます。
すごいね~

“社外秘”シート以外を値貼りにする
よし!じゃあ最後だ!!!
社外秘シート以外を値に変更したいんだが…
ここでどっこい!
Excelならではの注意点だ!!
他のシートに、社外秘シートを参照するデータがあって、
かつ、再計算が自動になってた場合…

もちろん…参照元が消えて、計算されちゃうと…
#REF!のエラーになるよな!!
マジで見たくないエラーだよねこれ…

つまり!Excelの特性をしっかり知っておかないと、ChatGPTに指示も出せない!
(ま、その特性すらもChatGPTが加味してくれる場合もあるんだが…)
しっかりとExcelの基本的な特性、VBAのプログラミングの注意点などはこれからも
勉強が必要そうだね!

ちなみにChatGPTに無理やりコードを書かせようとしてみたけど…
この点がうまくいかなかったwww
伝え方(プロンプトと言います)が悪かったのもあるけどね…

ま、そういう場合は…
①簡単なコードを別個でChatGPTに聞いて、付け加える
➁自分の知識やGoogleに頼る
等で解決していこう!!
ちなみにUsedRangeってプロパティはよく使うから…良ければ使ってみてくれ!!
英語のまんま。「そのシート内で使われてる範囲」って感じだ!!

オツカレサマデシタ!

お疲れさま!
これからは俺も使ってみるよ!

お疲れさまでした!
あとがたり
おはこんばんちは。うp主です。
VBA100本ノック、14本目の解説となります。
最近多忙のため…月一くらいでノックは再チャレンジしております。
さて…今回はアレですね。
噂のChatGPTさんを使って、コードを書いてみたぞ~!
ただ…難しいっすね。
初心者さんにこれをどこまで伝えるのか…
この動画を見た感じだと、
「え!ChatGPTにとりあえず全部聞けばよくね?」って思われそうな…気もしなくもないな…
ま、それは間違ってはないと思うんですが…うーん、
「ChatGPTが作ってくれたコードを見て、それが何かある程度言語化できる」レベルくらいにはなっておいた方がいいと思うぞ!
その方が、コード作製も爆速になるし、
ChatGPTとももっと仲良くなれるぞ!(適当)
とは言え、これからChatGPTなんてエンジニアにとっては絶対に必要なツールになってくるから、
徐々に慣れていこうね!
(ま、奴らはとんでもないスピードで進化してるから…今後どうなるかはわからんけどww)
とにもかくにも!
ググる以外にも、こんな感じで解くこともできるよ~ってのが伝わればと!!
またいつかChatGPT使って解いていきますわ!
最後までご視聴ありがとうございました!
コメント