質問: excel vba マクロ カラーパレットで図形の色を変えるとき excelのマクロを始めたばかりの初心者です。 図形の色を変更するために、 application.dialogs(xldialogpatterns).show でカラーパレットを出して、選択しようと思いました。 しかし、セルを選択した時のカラーパレットと図形を選択した時のカラーパレットは 同じものではありませんでした。 セルを選択したときは"その他の色"も選択できたのですが、図形を選択した時は "その他の色"は選択できません。 図形を選択したときも、セルを選択した時のカラーパレットにすることはできませんか? もしくは、"その他の色"を選択できるようにはできませんか? ご教授よろしくお願いいたします。
回答: こんにちは 確かにご指摘のように表示されるパレットの内容が変わるようですね。 図形を右クリックした時の「図の書式設定」のダイアログがないか探してみましたが見当たらないようでした。(id=1~2000まで見てみました。) ご質問の操作がどのようなシチュエーションを想定なさっているのかよくわかりませんが、上述のように右クリックのメニューからダイアログを出せますし、クイックツールバーに「図の塗りつぶし」を登録しておくことでも1クリックでダイアログを出せるようにできます。 これって、マクロを実行するのと手間としてはほとんど変わらないような気がしますが・・・ などと言っているばかりでは回答にならないので、代替案を考えてみました。 一つは、質問者様がなさろうとしていることの延長上で、もう一つは少し違った方法です。 一つ目の考え方は、 1)(使わない)セルを選択した状態でダイアログを出す (ユーザの操作が終わると、セルに色が反映されている) 2)セルの色を取得する 3)2で取得した色で、図形を塗りを行う というマクロを作成するものです。 お考えの方法より、若干手順が長いかも知れませんが、一応目的は達成できるかと思います。 二つ目の方法は、マクロでコマンドリボンの操作を行うという考え方です。 通常の設定だと、alt、h、h、mの順でキーを押すと「その他の色」のダイアログが表示されますので、これを行うだけのマクロです。 (ショートカットなどを変更している場合は、キーの内容が変わりますのでご注意。) 以下はこの方法のサンプルです。(図形を選択した状態でマクロを実行してください) sub test() sendkeys "%h", true sendkeys "hm", true end sub 長々と書きましたが、最初に記しましたように、マクロを実行する手間とほぼ同様の操作で手動でダイアログの表示ができてしまうので、あまり有用な気はしないのですが・・・