14本目 特定の文字を含むシートを削除

VBA100本ノック

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使って解いていきますわ!

最後までご視聴ありがとうございました!

コメント

タイトルとURLをコピーしました