[[20260723014635]] 『ExcelからCopilotを使う』(匿名) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『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


>みたいな事ってできるのでしょうか。
>できればVBAでやりたいのですが、
マクロは作成してくれますが、Excelとは連携していないのできません。
最近の Microsoft365 には Copilot が付属しているようですがこちらも
編集のみでマクロには対応していません。Excel内での作業になります。
(閲覧者) 2026/07/23(木) 09:23:33

ななし様
閲覧者様

ご回答ありがとうございます。

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人分の氏名をCopilotに作ってもらい、
氏名とは何のカテゴリーでしょうか。
(はてな) 2026/07/23(木) 10:53:10

はてな様
ご回答ありがとうございます。

特別カテゴリー分けするわけではありません。
単純に「日本人っぽい氏名が100人分くらい欲しい」
というだけです。

最初はボタンを押すたびに4〜5名の氏名を生成してもらう
という事を考えたのですが、
100人分くらいの氏名を作ってExcelのワークシートに入れておき(手作業)
ボタンが押されるたびに、100名分くらいのデータの中から、
ランダムに4〜5名選択して表示する(VBAでExcelにしてもらう)
という方向に切り替えようとしているのです。
(匿名) 2026/07/23(木) 12:13:34


AIに100名分の回答求めてExcelにコピペするだけで十分では?

(詠み人知らず) 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.