見出し画像

ChatGPTにVBAマクロを書いてもらった

何番煎じって感じですが実際にやってみました。

マクロのお題

お題:特定の値以上のときにセルの背景色を赤にするマクロを作って欲しい

Sub HighlightCells()

    Dim rng As Range
    Dim cell As Range
    Dim threshold As Integer
    
    ' 変更するしきい値を設定
    threshold = 10
    
    ' 変更するセルの範囲を選択
    Set rng = Selection
    
    ' セルの背景色を変更
    For Each cell In rng
        If cell.Value >= threshold Then
            cell.Interior.ColorIndex = 3 ' 赤色に変更
        End If
    Next cell

End Sub

上記の例では、threshold変数に値を設定し、その値以上の場合に背景色を変更するようにしています。このマクロを実行する前に、変更するセルの範囲を選択してから実行してください。また、ColorIndexプロパティを使用してセルの背景色を変更することに注意してください。3は、Excelのビルトインのカラーパレットで赤色を表すインデックスです。必要に応じて、このインデックスを変更して、異なる色を使用することができます。

ChatGPTの回答

いや、すご…瞬間で答え返ってきたし、コメントまで書かれてるし…

お題:しきい値を引数で変更できるようにして

Sub HighlightCells(threshold As Double)

    Dim rng As Range
    Dim cell As Range
    
    ' 変更するセルの範囲を選択
    Set rng = Selection
    
    ' セルの背景色を変更
    For Each cell In rng
        If cell.Value >= threshold Then
            cell.Interior.ColorIndex = 3 ' 赤色に変更
        End If
    Next cell

End Sub

上記の例では、thresholdを引数として受け取り、その値以上の場合に背景色を変更するようにしています。このマクロを実行する前に、変更するセルの範囲を選択してから実行してください。また、ColorIndexプロパティを使用してセルの背景色を変更することに注意してください。3は、Excelのビルトインのカラーパレットで赤色を表すインデックスです。必要に応じて、このインデックスを変更して、異なる色を使用することができます。実行する際に、例えばHighlightCells(15)とすることで、しきい値を15に設定することができます。

ChatGPT

何がすごいって、続きで会話できるのがすごい。

数式とか使い方は?

お題:Excelの数式で、列Aの文字列を部分一致で列Cから探し、その行の列Dから最初の列Aの行の列Bに値をコピーしたい

ちょっとよくわからん日本語であえて質問してみました。

=IFERROR(VLOOKUP("*"&A1&"*",C:D,2,FALSE),"")

この数式は、列Aの値を含む文字列を列Cから検索し、その行の列Dの値を返します。 IFERROR関数を使用して、検索結果が見つからない場合には空白を返すようにしています。

ここで、VLOOKUP関数の引数は以下の通りです。

・引数1: "*"&A1&"*" - 検索するテキスト(部分一致)
・引数2: C:D - 検索する範囲(列Cと列D)
・引数3: 2 - 返す列の位置(列Dの右側にある列B)
・引数4: FALSE - 近似一致を使用しないようにする
この数式を列Bのすべての行にコピーすると、列Aの値が含まれる行の列Dの値が列Bに自動的にコピーされます。

ChatGPT

ちゃんと理解してるぅぅ!

お題:Excelで特定の範囲で、その範囲にある値の平均を求め、その範囲で上位5位のセルの色を変えたい

以下の手順で特定の範囲で平均を求め、上位5位のセルの色を変えることができます。

1.平均を求めたい範囲を選択します。
2.「ホーム」タブの「条件付き書式」から「色のスケール」を選択します。
「色のスケールの編集」ダイアログボックスが表示されます。下記設定を変更します。
 ・「最小値」を「最小」に設定します。
 ・「中間値」を「なし」に設定します。
 ・「最大値」を「最大」に設定します。
 ・「色」を好みの色に変更します。
 ・「値の入力規則」を「上位の5%」に設定します。
3.「OK」をクリックします。
これにより、平均値が中央に配置され、上位5%のセルが強調表示されます。必要に応じて、条件付き書式の設定を微調整して、範囲の数値を適切に強調表示することができます。

ChatGPT

ヘルプとかヘルプデスクの必要性がなくなるレベル。

進化がすごい

マイクロソフトもGPT組み込み発表してたし、ちょっとしたアプリはもう自然言語で作る時代になりましたね…。ローコード、ノーコードの時代から一気に「自然言語」時代へ…。

もうすでに人と機械がコミュニケーションする時代になったんだな~と実感しました。あと普通に便利だ…質問したら秒でそれっぽいことが返ってくるので、検索の概念が変わるってこういうことね。そりゃGoogleも焦りますよ。

これからは「この回答が正しいのか?」という検証する必要もあるんだろうけど、どんどん学習するから指数関数的に賢く(正しく)なっていくんだろうなぁ…

まさに「信じるか信じないかはあなた次第」な世の中になってきたと感じました。

この記事が気に入ったらサポートをしてみませんか?