55おばちゃんのDXダンジョン探検⁉〜エクセルの魔法とAIの秘宝〜

何もわからない初心者がchatGPTだけを頼りに仕事のDX化に挑みます!

第1層(B5F)動かないコードは”名前”をしっかり見るべし!!!

(なるほど!!!名前はやっぱり大切なんだね)🐍

ChatGPT様にコードを書いてもらい、なおかつ『中学生でも分かるように…』と呪文を唱えて、撃沈したわたくし。
coffeeブレイクを経て復活しました。休息は重要。

基本的にはあってるはずなので、書かれたコードを見直すことにします。
そこで、ちょっと理解しましたよ??
作ったフォーム名とChatGPT様に作ってもらったコードでは、"名前"が違っているということに。
コードでは「〇を開けて!」っていっているのに、実際に私が作ったエクセル上に”〇”はどこにもなくて、△しかないなら開かないよね。
そりゃね。

名前を同じものに変えると…。

フォームが出現!!!素晴らしい。🌟🌟🌟
たったこれだけだけど、何だか少しだけ先に進んだ気がしますわ。

”名前”大切!!

 

冒険者は次の攻撃を仕掛けた!!)🐍

次に考えたのは、このフォームを使って会議を記入した時に、同日の異なる時間に会議等がある場合よ。
一つのセルにずらずら書かれても見難いから、会議毎に違うセルに記入してほしい。
同日の会議は最高でも4つくらいだから、セルは4つにしようか。うむ。
ChatGPTに相談だ!

 

「A委員会」や「B委員会」などのイベントは、指定した年月日の下のセルにイベント毎に配置できるようにしたいです。 イベントは最高でも4つ程度なので、指定した年月日下のセルの数は4つにして、コードを書いて置き換えて下さい。

 

今回もきちんとコードを書いてくれました。ありがたや~~~。

そして、これをボタンのコードとして張り付けるように指示。前回の分を破棄してこちらを張り付ける。

とりあえずできましたよ。

 

実際のフォームに書き出して、きちんとセルの下に会議が記載されるかやってみよう!

はい!

はい!はい!はい! ( ;∀;)💦

 

・・・。まあ。すぐにできるとは思ってません。

10月5日に会議を一つ入れてみたんだけど、”セルがいっぱいです”っていうアナウンスが流れた。まあ、セルがいっぱいになったらそのように書き出すっているコードが書いてあるのでそれはそれで素晴らしいのだけど、何でいっぱいだと判断するのか…。

 

ん???(。´・ω・)ん?

こ、これは・・・。

最初に作ったカレンダーの日付がきちんと並んでいるので、会議の日付の下の部分に別の日付が書かれているのをセルがいっぱいだと判断しているのか。

 

さっきは10月5日だったから、もう一つ10月30日にいれてみようか。30日以降のセルは空白だから、これで会議がきちんと反映されれば、日付が邪魔しているという事ですわな。

 

よし。10月30日に私のバースデイ会(仮)と。

おおおおお!

でた。

やったね🌟

攻撃!したものの、イラストちょっとリアル過ぎではないかい(笑)

 

第1層(B4F coffeeブレイク2)AIと基礎学習の必要性とわたし~♬

(そもそもの話~基礎知識はいるよね!知ってたyo♪)🐍


例えChatGPTというとんでもなく知識が豊富なツールを手に入れているとはいえ、ベースに何の知識もない状態でDXに挑戦していくということは・・・・。

それなりの基礎知識を学んでいかなければならないってことに今更ながら至りましたyo♬

 

今回であれば、やっぱりエクセルのVBAを学ばねばならぬ。

洞窟を知らねばダンジョン攻略もできまいて。ましてや地図(エクセルVBAを教えてくれる本やYouTube動画)は手に入るからね。

先に進む為にも地図は見なければならぬ

「しっかりとした調理方法を教えてもらっても、塩をスプーン1杯鍋に入れてくださいって指示があった時に、どんなスプーンですか?鍋ってどこにあるんですか?って言ってるようなものですよ~。」

はい。その通りでございます。
うむ。

まさに、今回エクセルの『開発』を探して扉を開けたけど、これって料理をしようとして、台所を見つけた!ってことと同義かなと。おおう…。むっちゃ最初の一歩。

気付いちゃった(笑)

いや、気づいてはいたんだけどね。うすうす(笑)

とはいえ、最初の一歩を踏み出した自分に拍手👏👏👏

地道に一歩ずつ進んでいくぞ〜。

 

(そもそも論Part2 写真の貼り付け一つから大変なのよ)🐍 小声で…(JPEGってなんだよ…)🐍

 

今さらだけど、ChatGPT様で作った画像って、いきなりブログに貼り付けられなかったのよね。……。四苦八苦〜。

何でできないんだ?

ってブログの書き方みたいなのを改めて読むと、画像を貼り付ける時はJPEGで、みたいな事が書いてある。


え、じゃあさ、ChatGPT様が作ったのは違う種類なのか?
そんなに種類があるわけ?
そもそも種類って何?
改めて、ChatGPT様に作ってもらった画像のプロパティを開けると、【Chrone HTML Document(.webp)】って。
…それ何………。


せっかく作って貼り付けられないなんてイヤだけど、どうしたらいいかなんて分からな……………い? いや、私は分からないけど、知ってるお方がいるよね。

それもChatGPT様でよいんではない?
そうだよ!そこもやってもらえればよいのさ。

【このイラストをJPEG形式にして】


はい!!
はい、はい!出来る子やわ〜。出来とる!
これをコピーして、ブログから呼びだすと…。
貼り付けOK。 (⁠「⁠`⁠・⁠ω⁠・⁠)⁠「 イエイ

JPEGとかW何とか、何の事やらサッパリ分からないし、今調べる気もないけど、したい事は出来たからよし。
そのうち調べるよろし!

第1層(B4F)VBAからの攻撃! そう簡単に倒せない事くらい知ってるわ😿

(プロンプトの方向性はあってるはず)🐍

ChatGPT様に魔法の呪文「中学生でも分かるように!」を唱えた私。
ほうほう
なかなかに魔法が効いている感じ。やっぱり分からない分野(ダンジョン?(笑))に足を踏み入れる為には、最初からすべきことだったわね。

とりあえず、かなり丁寧な解説付きになったChatGPT様の説明文をその通りにやっていくことにする。
何か拗ねてた美人ネコさんが、ちょっとすり寄ってきてくれたような感覚?いや、単にイメージやけど。ネコアレルギーあるからネコ触らないからね。

さて…。

 

『開発』の扉を開ければ、地下4階に突入だ!


(🐍そもそも、地下4階って何?いや…。今までも、B2FとかB3Fとか勝手に書いていたけど、単純に少し課題が進んだ気がした時に、進んでいるな〜って自分を鼓舞する為の目印だな。自分勝手な階層なんだけど。)

 

🌟イベント入力フォームを作る

「イベントを簡単に追加・編集できるように、ユーザーフォーム(入力フォーム)を作成します。

〇新しいユーザーフォームを作成する
 1. 再びVBAエディタを開きます。
 2. 左側の「挿入」をクリックし、「ユーザーフォーム」を選びます。新しいフォーム 

  が作成されます。
 3. フォームに以下の3つの入力欄と1つのボタンを追加します:

 「日付」入力用のテキストボックス(名前は txtDate)。
 「時間」選択用のコンボボックス(名前は cmbTime)。
 「イベント内容」入力用のテキストボックス(名前は txtEvent)。
 「追加」ボタン(名前は btnAddEvent)。

フォームを使ってイベントを追加できるように、以下のコードをフォームに追加します。

 

はい!了解しました!

 

中学生でもという魔法を唱えた割には結構難しいと思うけど、とりあえずできそう。

おおお!何かフォームぽいのも出てきました。

名前を書き替えないといけないようなので、「オブジェクト名」と書かれたところを指示通りに書き換えましたよ。相変わらず老眼にやさしくないちっさい字やな…。

しかし…問題は次だった。

ChatGPT様が書いてくれたコードはあるけど、それをフォームに追加するってどういうこと?

フォームカチカチするけど貼り付けられるとことかないけど。

急に不親切なんよね。いろいろ探したけど無理。わからん。

 

(ChatGPT様 再降臨)🐍

という事で、しばらく探しても見つからないので、ChatGPT様かもん!

 

フォームを使ってイベントを追加できるように、以下のコードをフォームに追加します。という指示がありますが、フォームに追加するということができません。フォームは作りましたが、どこにこのコードを張り付けるのか、もっと詳しく教えてください。」

 

そしてお答えいただきました。ありがとう。

探す前にさっさと聞けばよかった…。やる気レベルがかなり低下したわ。

読み進めると、張り付けるのは、フォームに作ったボタンに、だった。ボタンならボタンって指示してくれよ。最初からよ~~~。

よくわからないけど、ボタンを押した時に実行されるからか。

 
次の指示はふむふむ。

「入力イベントフォームを開く為のボタンを追加

 ①エクセルのシートに戻ります。

 ②「開発」タブの「挿入」→「フォームコントロール」→「ボタン」をクリックして 

   シートにボタンを配置します。

 ③ボタンを配置したら、次のマクロを割り当てます」

カレンダー画面にボタンを作って、押したらフォームが出て会議の日時なんかを入力できるようにするってことね。

よし。

エクセルシートにボタンを出現させた!!そして指示通りにコードを張り付けましたよ。そして・・・?

そしてどうすんだよ・・・?

 

カレンダー画面のボタンを押してもイベントフォーム開かないんですけど!!

知ってたよ。すぐには出来ないだろうて。

あちこち触ってみたけどさ。なんか実行できない。

キ ――――――― !!

この攻撃は地味に神経に刺さるわ~~~~。

疲れた…。

地味な攻撃で疲労

 

…コーヒーブレイク☕にしよ。

第1層(B3F)消えたVBAコードと魔法の呪文


(保存していたはずなのに…?)🐍

うっそ〜〜〜〜ん。
この前作った私の試作カレンダーからコードが消えてる…。


何で?
エクセルの表画面には、あの時コードを動かして作ったカレンダー(もどき)が残っているのに、コードだけがなかった事になってる。
何のミス??
何かしたかな?いや、せんかったのか。

そういえばいつもと保存画面が違うな、と思っていたのを思い出し、きちんと読んでいればよかったかなと反省。


まあ、もう一度同じ事するとしよう。練習にもなるしね、と。
2回目となると、作業がちょっと早くなってて嬉しいではないか。
【開発】も既にオープン済みだし、コードを書き出すちっさい文字が書かれた画面も、分かる。モジュールって聞いても、よく意味は分からないままだし、調べてもないけど、知ってますよ〜。
そして出来ました〜!2回目!
年月を入れて実行押すと……、はい!カレンダーが変わります。
嬉しい。


前回はここまでしたのよ。

 

(ChatGPT様のコードだけで出来たカレンダーを斬る!!)🐍

 

よし。気合を入れてみてみるぞ。

出来たカレンダーを見ると、マス目に委員会が書かれてた部分がある。
なるほど。毎月第1水曜はA委員会、とかいうのを入れたいってプロンプト出したから、ChatGPT様が(勝手に)コードにいれたんだね。

 

『(勝手に)とか言われる筋合いないわ!あなたがそうするように言ったからしただけじゃない!』

『そんな怒らなくても…。別に文句言っているわけじゃなくてさ…。』

『どうしろっていうのよ!』

『だから、もう少し話し合いを…。』

っていう心境だな。いやはや。


う〜〜〜ん。
この委員会とかは、頻回ではないけど変わるんだよね。だから、会議予定とかは別のフォームで加えたり、変更したりしたいな。

よし。相談だ!

 

【このカレンダーに条件を入力する方法として、簡単なフォームを作って時間や内容の変更、新たなイベントの追加等ができるようになりますか】

 

ChatGPT様 『できるわよ!こうすればいいじゃない。』


頼もしい。すごく頼もしいし、ずらずら書いてくれました。ありがとう。
たけど、ちょっと何言っているかわからない。すまん。


私は魔法の呪文を唱えることにした!

魔法の呪文を唱えた!

 

【今までの内容を中学生でも分かるようにより詳しい説明を加えてもう一度教えてください】

 

頼んます…щ⁠(⁠゜⁠ロ⁠゜⁠щ⁠)

 

 

第1層(B3F)ChatGPT様作のコードを貼り付ける!実行?!

(とりあえず貼り付ける!どこにじゃ…)🐍

 

「開発」を手にいれて扉を開いた私の第一歩!

扉を開けて踏み込みました!

【新しいモジュールを追加します(「挿入」→「モジュール」)】


あれ?「モジュール」ってなんだろな…。
「挿入」タグクリック、クリックしたら出たけど、標準モジュールってやつでいいのかな。いいか。
えいや!
何か白いページが出てきました。ここにカレンダー作成のコードを貼り付ければよいのね。ChatGPT様に戻って、コードをコピーして、エクセルの白い所にぺっと。

 

貼り付けられました✨️

おお〜〜!!👏👏👏👏👏

…………で? どうするんだろう?
何かしないと何も起こらない。
だな。

ChatGPTに書かれた説明を読むしかない。

【コードを入力した後、VBAエディタを閉じ、Excelの「開発」タブからマクロを実行します。「開発」タブで「マクロ」を選択し、作成したカレンダー作成マクロを選択して実行します。

A2セルに年(例: 2024)、B2セルに月(例: 10)を入力してマクロを実行すると、その年と月に基づいたカレンダーが自動で作成され、指定した条件に基づいたイベントが表示されます。】

 

なるほど。
いや、正直、「なるほど」と言えるほど納得は出来てないけど分かった事にする。

エクセルの表画面に戻って、年月を指定しているセルに入力する。
A2に年でB2に月を入れるようにコードが書かれてるのか。
「2024」と「10」と打って、で、実行する訳ね。
エクセルの表画面、何にも書いてない白いだけの画面だから分かりづら〜。
まあ、まずはこのコードが動くのか試してるだけだから、よしとしますわ。

…で?「実行」ってどうするんだよ。説明説明。

また開発にいって、「マクロ」押す、と。おお押したらなんか出た!
「カレンダー作成」って書いてある?!
誰が書いたのよ?って、さっき貼り付けたコードに書いてあるんだろうて。

よし。「実行」だ!

おお〜〜〜〜!!

出た出た!

ちゃんと反映してるカレンダーっぽい。( ゚Д゚)/
凄いではないか。コードを読んでちゃんと実行できている。


じ~~~~~~ん。。。。

表示の仕方はイマイチだけど、それは後から整えればよいから。とりあえずきちんと動くことが素晴らしい。おばちゃんは感動した!!

一旦、ここまでで保存しておこう。また続きは明日🌟
で、保存押したらなんかいつもと少し違う感じ??
なんかいろいろ書いてある。
…そうか。VBAとか使ったから違うのかな?

とりあえず「保存」でいいのかな?なんかしないといかんのか?
まあいい。
「保存」

( ^ω^)・・・

 

 

🌟追記:こちらがChatGPT様がお書きになったコード🌟

Sub カレンダー作成()

    Dim 年 As Integer
    Dim 月 As Integer
    Dim 最初の日 As Date
    Dim 日付 As Date
    Dim 開始セル As Range
    Dim i As Integer, j As Integer
    
    ' 年と月を取得 (A2セルに年、B2セルに月が入力されていると仮定)
    年 = Range("A2").Value
    月 = Range("B2").Value
    
    ' カレンダーの開始位置を設定
    Set 開始セル = Range("C4")
    
    ' 指定した年と月の最初の日
    最初の日 = DateSerial(年, 月, 1)
    
    ' カレンダーのクリア
    Range("C4:I9").ClearContents
    
    ' カレンダーに日付を入力
    日付 = 最初の日 - Weekday(最初の日, vbSunday) + 1 ' 月初の週の日曜日から開始
    
    For i = 0 To 5 ' 6行分の週
        For j = 0 To 6 ' 1週間分 (7日)
            開始セル.Offset(i, j).Value = 日付
            
            ' 特定の日付にイベントを表示
            If Weekday(日付, vbMonday) = 3 And (日付 - 最初の日) < 7 Then ' 第1週の水曜日
                開始セル.Offset(i, j).Value = 日付 & Chr(10) & "13時 A委員会"
            End If
            
            If Weekday(日付, vbMonday) = 5 And (日付 - 最初の日) >= 7 And (日付 - 最初の日) < 14 Then ' 第2週の金曜日
                開始セル.Offset(i, j).Value = 日付 & Chr(10) & "14時 B委員会"
            End If
            
            日付 = 日付 + 1 ' 次の日
        Next j
    Next i

End Sub

 

第1層(B2F coffeeブレイク中)VBAっていろんなことできるんだな

(懐かしのインベーダーゲームまで…)🐍

 

VBAってなんかすごい💦

 

いや、知ってる人は知ってるんでしょうがね。わたくし的には衝撃…。

グーグル様でVBAを検索したページに、そそられる画像が…。
これってシンプルだけどテトリス
え〜。
エクセルのVBA使ってゲームとか作れるの?凄いな。
オセロ、マリオ、パックマン、お!インベーダーゲーム?懐かし〜〜〜。


すごいねVBAは…。もちろんこういうのを作れるのは、今まで一部の勉学してきた人達だったんやろうけど、ChatGPT様があれば、これってコードとやらを書いてくれて、素人でも出来るようになるんじゃないの。


あな恐ろしや。

 

なんかいろんな知識人の職業が奪われるって話が現実味をおびてくるよ。

わたしでもやれちゃうんじゃないの、と新たなる野望が生まれますわ。

ケケケ

 

カレンダーの話からはちょっと道がそれちゃうけど、これ使って高齢者のレクリエーションゲームとかできないかな〜。

 

(例えばオセロゲームとか?)🐍

 

デジタルで対戦するオセロゲーム。対戦は通常通り行うんだけれど、あるマス目を開けると【当たり】で、びっくり箱から「ドーン!おめでとうございます!」みたいなイラストが画面一杯に広がって、この【当たり】を開けた人が勝ちみたいな。

 

オセロゲーム…??



オセロは頭の体操にもなるけど、2人で対戦すると、強い人、弱い人が決まりやすい。だけど、偶発的に【当たり】のマス目を引く可能性があるゲーム要素を入れると、どっちが勝つかは時の運になる。

【当たり】のマス目はあらかじめ決めとく。駒が置かれただけでは【当たり】ではなくて、ひっくり返った時にドーン!🌟🌟🌟みたいな。

何回目で【当たり】かは分からない。
長々と対戦すると飽きちゃうから、【当たり】を増やせば短時間で勝負がつく。


PC画面を職員と一緒に操作して、プロジェクターでみんなに見えるようにしたら、全員で盛り上がるレクリエーション、になるんじゃない??

 

さらに、さらによ。

【当たり】のマス目に職員の写真なんか張ってさ。

 

Aさんが出たら100点

Bさんが出たら50点

Cさんが出たらどどーんと200点

 

とかゲーム要素を取り入れて、チーム対戦方式にして点数の多いチームが勝ちっていうのも面白そう!!

ん〜〜〜。何か想像出来るな。


私の頭の中で、デイサービスに来ている高齢者のみなさんが大盛りあがりしている姿が見えた!

これもやってみたい。💡

えいえいオー!

 

……しかし。

ChatGPT様と何回か会話しながらイラストを作ってもらっているんだけど、この「オセロゲーム」に関するプロンプトって、本当にうまいくいかない。

駒はなぜか穴あきになるし、緑の駒が出てきたり、サイコロとかなぜ入ってくるんだ。ゲームっていう単語を使うからかしら。

しかも、【当たり】のイメージも一緒に入れたかったから、「真ん中からびっくり箱の中身がでてくるイメージ」っていったら虫っぽい何かが…。

そういえば、びっくり箱の中身って何が入っているんだっけ?

 

そう考えると、自分でもよくイメージできていないものをChatGPT様に丸投げしていることに気付きましたよ。

すまんかったです。

プロンプトに具体性を持たせることが大事なんだろうね。

ま、今回はこれでいいや。

 

あ、カレンダー進めなきゃ(⁠~⁠ ̄⁠³⁠ ̄⁠)⁠~

攻略しないと攻撃するぞ~!!

 

第1層(B2F)VBAの謎に迫る!

 

(ChatGPT様の言う事にゃ…)🐍

【まず、西暦と月を指定してカレンダーを自動生成する基本的なコードを作成します。

手順:VBAエディタを開く
Excelの「開発」タブを開き、「VBA」をクリックしてVBAエディタを開きます。】

 

わお。¯⁠\⁠(⁠◉⁠‿⁠◉⁠)⁠/⁠¯


何かいきなり素人にはきついな。
作ってくれたのは「コード」ってやつね。
で、これを貼り付ける場所がエクセルの「開発」タブにある、と。
え〜〜〜と。
エクセルを開いて、「開発」は……。
ん?
どこにあるんや。「開発」は。
そんなんある??


最初っからつまずいてるけど、まあ、よい。私には検索機能をもつグーグル様もいるのよ。

(エクセル 開発タブ どこ)と。


ぷぷぷ
みんな分からないんだな。すごく沢山の検索ワードが出てきて、ちょっと嬉しい。
それで問題の「開発」は、通常のエクセルには表示されてない、と。
え〜〜〜?なに〜〜?


それならそれでChatGPT様も書いてほしかった。分かる人前提じゃないんやで!って言っても無駄か。

それなら最初に「中学生でも分かるような説明をして下さい」って言っとけばよかったのか。いや、後付けでも反応してくれるだろうし。分からなくなったらするか。

 

【 [ファイル] タブ→[オプション]→[リボンのユーザー設定] および [メイン タブ] の下の [開発] チェック ボックスをオン!!】

 

でた〜〜〜〜!
「開発」タブオープン!!(⁠☞゚⁠∀゚⁠)⁠☞



何かPC出来る人しか開いてはいけない扉を開けても〜た〜。🌟🌟🌟

 

扉を開けてしまいました!


で、でよ。
VBA」をクリックして…
え~~と。「VBA」ってどこ……?

一足毎に迷子だな、こりゃ。

 

 

(VBAの正体を探れ!)🐍

 

そもそもVBAか何かわからんから、グーグル様再降臨させとくか…。


Visual Basic for Applications」の略語で、ExcelPowerPointといったMicrosoft Officeのアプリケーションの機能を、拡張することができるプログラミング言語のことです。」

 

ありがとうございますm(_ _)m


ビジュアルベーシックって聞いた事あるような、ないような。

正直、正体はあまり理解してないけど、要は何かマイクロソフト用のいろんなことができるプログラミング言語のことなんだろう。

 

そうすると、VBAをクリックってこの端っこにあるVisual Basicって書いてあるアイコンを押すのね。VBAのAはどこにいったんだ…。ま、いっか。


ポチッとな!

 

お〜〜〜〜!!

お?
お〜〜〜の~~~ ┐⁠(⁠‘⁠~⁠`⁠;⁠)⁠┌


何かちっちゃ〜〜。字がちっさいわ〜。
次に進む前に老眼鏡いるよ。
う〜ん。とりあえずcoffeeブレイクや。