Geminiと100本ノック 11本目:セル結合の警告
AIのGeminiがVBA100本ノックに挑戦!
AIがVBAをどこまで扱えるかの実証実験の11本目です。
そこで、独自に作成したGem(名前は「AI神髄VBA」改良を続けている)を使った回答も掲載しています。
VBA100本ノックの出題と解答
Geminiへの出題とGeminiの回答
| Geminiの回答 | Geminiへの出題 | |
![]() 画像のようにシートにはところどころにセル結合があります。 これは放置しておく訳にはいきません。 セル結合されているセルには、メモ(旧コメント)で警告文を出しましょう。 ※シートは任意、警告文はご随意に |
||
![]() ![]() ![]() ![]() ![]() 承知いたしました。セル結合されているセルにメモ(旧コメント)で警告文を出すVBAコードを作成します。 コードの解説:
実行方法:
|
ステータスバーの表示とか、突然丁寧な作りこみになっていて、どうしちゃったのかな、という感じではあります。
とはいえ、VBAは良く出来ています。
ただし、実務的にはUsedRangeを使用するのはちょっと危険です。
離れた下の方のセルに何か入っているとか、書式や罫線だけ設定されていても、UsedRangeは範囲に入ってしまいます。
そのような場合、待てど暮らせどこのVBAは終わらなくなってしまいます。
UsedRangeを使うなら、セル数の上限をチェックしたほうが良いですね。
一応これを伝えたところ、以下を追加してきました。
' 使用済み範囲のセル数をチェック
If rng.Cells.Count > maxCellLimit Then
response = MsgBox( _
"使用済みセル範囲 (" & Format(rng.Cells.Count, "#,##0") & " セル) が設定された上限 (" & Format(maxCellLimit, "#,##0") & " セル) を超えています。" & vbCrLf & _
"このまま処理を続行すると、非常に時間がかかる可能性があります。" & vbCrLf & _
"続行しますか?", _
vbYesNo + vbExclamation, _
"処理範囲の確認")
If response = vbNo Then
MsgBox "処理をキャンセルしました。", vbInformation
Exit Sub ' ユーザーが「いいえ」を選択したら終了
End If
End If
これはこれで良いと思います。
出題の画像から推察すれば、あくまで1つの表なのでCurrentregionを使えば良いとは思いますが、、、
まあ、このあたりは好みと時々の都合によると思います。
AI神髄VBAへの出題とAI神髄VBAの回答
前回の10本目で使用したGemを今回は少し改良しました。
| AI神髄VBAの回答 | AI神髄VBAへの出題 | |
![]() 画像のようにシートにはところどころにセル結合があります。 これは放置しておく訳にはいきません。 セル結合されているセルには、メモ(旧コメント)で警告文を出しましょう。 ※シートは任意、警告文はご随意に |
||
![]() ![]() ![]() ![]() ![]() はい、承知いたしました。「AI神髄VBA改」として、セル結合されているセルにメモ(旧コメント)で警告文を付けるVBAコードを作成します。ご要望に沿って、可能な限り短く、高速で、適切なメソッドを使用し、日本語のコメントと整形を行います。 VBAコードの解説
|
だいぶ私の書くVBAに似てきたように感じます。
たぶん私のVBAを知っている誰かにこのVBAを見せて、私が書いたと言っても特に何も疑わないかもしれません。
そのくらいのレベルになっていると思います。
同じテーマ「生成AI活用研究」の記事
Geminiと100本ノック 8本目:点数の合否判定
Geminiと100本ノック 9本目:フィルターコピー
Geminiと100本ノック 10本目:行の削除
Geminiと100本ノック 11本目:セル結合の警告
Geminiと100本ノック 12本目:セル結合の解除
Geminiと100本ノック 13本目:文字列の部分フォント
Geminiと100本ノック 14本目:社外秘シート削除
Geminiと100本ノック 15本目:シートの並べ替え
Geminiと100本ノック 16本目:無駄な改行を削除
Geminiと100本ノック 17本目:重複削除(ユニーク化)
Geminiと100本ノック 18本目:名前定義の削除
新着記事NEW ・・・新着記事一覧を見る
最長連続出現数(ランレングス)の算出|エクセル練習問題(2025-11-15)
SQL基礎問題11:連続期間の開始月と終了月を抽出|SQL入門(2025-11-14)
セル数式における「再帰」の必要性|エクセル雑感(2025-11-10)
掛け算(*)を使わない掛け算|足し算(+)を使わない足し算|エクセル関数応用(2025-11-10)
配列を自在に回転させる数式|エクセル関数応用(2025-11-09)
非正規化(カンマ区切り)の結合と集計:最適な手法は?|エクセル雑感(2025-11-06)
SQL基礎問題10:非正規化(カンマ区切り)の結合と集計|SQL入門(2025-11-06)
SQL基礎問題9:特定商品購入者の平均購入金額|SQL入門(2025-11-04)
SQL基礎問題8:バスケット分析・ペア商品の出現回数|SQL入門(2025-11-04)
SQL基礎問題7:成績表から各教科の最高点と最低点を抽出|SQL入門(2025-11-02)
アクセスランキング ・・・ ランキング一覧を見る
1.生成AIパスポート試験 練習問題(四肢択一式)|生成AI活用研究
2.最終行の取得(End,Rows.Count)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.RangeとCellsの使い方|VBA入門
7.FILTER関数(範囲をフィルター処理)|エクセル入門
8.日本の祝日一覧|Excelリファレンス
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.セルのクリア(Clear,ClearContents)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.











