『ExcelからCopilotを使う』(匿名)
「IEの検索の窓に文字を入力して検索ボタンを押す」
というプログラムをExcelVBAで作ったことがあります。
これと同じような感じで、Edgeを起動してCopilotのメッセージの部分に
「日本人の氏名15人分を作って」と入力して、
返ってきた値(日本人の名前)をA1セルからA15セルに代入する
みたいな事ってできるのでしょうか。
できればVBAでやりたいのですが、
pythonならできるというのであれば、
これからpythonも勉強していこうと思います。
それともどちらでもできないのでしょうか。
少し調べたけどわかりませんでした。
どなたかご存じの方、教えていただけないでしょうか。
よろしくお願いいたします。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
ライセンスによりますが、
Excel の Copilot の使用を開始する
https://support.microsoft.com/ja-jp/excel/copilot/get-started-with-copilot-in-excel
のようにcopilotアイコンをクリックしたあと、
日本人の氏名サンプル15人分をA1:A15にリストして
とチャットで指示すれば、そのようにしてくれます
(ななし) 2026/07/23(木) 09:03:40
ご回答ありがとうございます。
Excel上に配置した、
ActiveXコントロールのボタン
または
フォームコントロールのボタン
を押すたびに、指定された人数分の日本人氏名を
Copilotに作ってもらおうと考えました。
結論としては、
100人分の氏名をCopilotに作ってもらい、
マスタデータとしてExcelに保存しておき、
必要な人数分の氏名をランダムで指定する
という方法で対応しようと思います。
(匿名) 2026/07/23(木) 09:48:33
書いてたら解決しちゃったけど
A1. copilot関数を使う
あなたがすぐ使えるかどうかはわかりませんが
=copilot("日本人の氏名を性及び名での重複無しで15人分つくって1列15行で返して",)
参考: https://support.microsoft.com/ja-jp/excel/functions/copilot-function https://www.microsoft.com/en/microsoft-365/roadmap?id=499658&searchterms=copilot+function
A2. gemini + python pyhonのライブラリが公開されてます。安定
A3.「edgeを開いてcopilotで実行する」が必須の場合(python) Selenium アドオンをedgeに入れるとブラウザの操作ができるのでそれで実行する。 細かい操作はcopilotのページ依存なので都度調整が必要で面倒だけど可能
※A2.A3はexcelのpy関数ではできません. 念のため (ちくわ) 2026/07/23(木) 09:57:25
A1については、
今現在は使用できない環境ですが、
使用できる環境に戻り次第試してみます。
このご回答に対する返答は少し遅くなると思われますが、
試してみたいと思います。
A2、A3については、
pythonの存在は知っていますが、
1回も勉強したことも使ったこともないので、
少しずつやっていこうと思います。
(開発経験はVB5.0、VB6.0、ExcelVBA、AccessVBA、OutlookVBA)
こちらは、結果の返答はかなり時間がかかると思われますが、
ご教授していただいたことなので、
必ずチャレンジしていきたいと思います。
ご丁寧なご回答くださりありがとうございました。
(匿名) 2026/07/23(木) 10:12:40
特別カテゴリー分けするわけではありません。
単純に「日本人っぽい氏名が100人分くらい欲しい」
というだけです。
最初はボタンを押すたびに4〜5名の氏名を生成してもらう
という事を考えたのですが、
100人分くらいの氏名を作ってExcelのワークシートに入れておき(手作業)
ボタンが押されるたびに、100名分くらいのデータの中から、
ランダムに4〜5名選択して表示する(VBAでExcelにしてもらう)
という方向に切り替えようとしているのです。
(匿名) 2026/07/23(木) 12:13:34
(詠み人知らず) 2026/07/23(木) 12:49:50
>AIに100名分の回答求めてExcelにコピペするだけで十分では?
仰る通りです。
最初は、ボタンを押すたびに、4〜5名分の氏名の生成をしようと思ったので、
ご質問させていただきました。
難しそうだったので、
AIに100名分の氏名の回答を求めてExcelに手動で貼り付ける
という対応に変更したのです。
貼り付けた表から、ランダムで4〜5名分を選択する(VBA)という形にしたのです。
(このコードは自分で作れます。)
質問はボタンが押されるたびに、その都度氏名を生成してもらう
という場合です。
基本的には解決済です。
ちくわ様の回答に対して、自分でやったことがない事なので、
今後試していき、自分の力にしようとしているのです。
(匿名) 2026/07/23(木) 13:10:40
遊んでたらできました。 excel in copilotを使用します。 事前にセルの編集を許可した状態で実行します。
使い物にならないくらい遅いのでホントに遊びですけど。
Option Explicit
'標準モジュール ' 図形か何かに登録してシートから呼び出す '(フォーカスが変なところに行くと動作しない)
' 1. 最初に実行するメインマクロ
Sub main()
Dim dataObj As Object
Dim promptText As String
promptText = "日本人の氏名15人分を作って、A1に1列15行で出力してください。"
' プロンプトをクリップボードにコピー(直前の方がいいかも?)
Set dataObj = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
dataObj.SetText promptText
dataObj.PutInClipboard
DoEvents
' まとめてマクロとして実行するとCopilotが開かずマクロ終了まで待機するようなので
' 時間予約で個別キーを送る
' F6 -> enter -> ctrl+V -> enter
' 時間をwaitやスリープで無く固定値で指定(微調整が必要ラグるとおかしくなる)
Dim timeF6 As Date: timeF6 = Now + TimeValue("00:00:00")
Dim timeE1 As Date: timeE1 = timeF6 + TimeValue("00:00:01")
Dim timeCV As Date: timeCV = timeE1 + TimeValue("00:00:05") ' パネル展開を待つため少し長めに調整
Dim timeE2 As Date: timeE2 = timeCV + TimeValue("00:00:03")
Application.OnTime timeF6, "pushF6"
Application.OnTime timeE1, "pushEnter"
Application.OnTime timeCV, "pushCV"
Application.OnTime timeE2, "pushEnter"
End Sub
' 2. F6キーを押すマクロ
Sub pushF6()
Application.SendKeys "{F6}", True
DoEvents
End Sub
' 3. Enterキーを押すマクロ
Sub pushEnter()
Application.SendKeys "~", True
DoEvents
End Sub
' 4. 貼り付けマクロ Sub pushCV()
' チャット欄を刺激
Application.SendKeys "{RIGHT}", True
DoEvents
' Ctrl + V で貼り付け
Application.SendKeys "^(v)", True
DoEvents
End Sub
(ちくわ) 2026/07/23(木) 14:27:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.