• ベストアンサー

マクロを登録したボタンの表示を変更するマクロ

かなり難易度が高いと思いますが、Excelのマクロでこんなことできませんか? Excelのボタン(表示名:ファイル取り込み)にあるマクロを登録し、このマクロを実行するとファイル選択ウインドウが開き、ここでフルパス指定(仮にc:\aaa\bbb.xls)であるファイルを選択する。 すると、ボタンの表示が”参照ファイル”に変わり、参照ファイルをクリックするとc:\aaa\bbb.xlsが別Windowオープンになる。

質問者が選んだベストアンサー

  • ベストアンサー
  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.3

VBEにて、該当するシートの、シートモジュールに、 つぎのコードを貼り付けてください。 いちおう、ボタン名の初期値は「ファイル取り込み」と表示されていることを想定しています。 Option Explicit Private Sub CommandButton1_Click() Select Case CommandButton1.Caption  Case Is = "参照ファイル"   CommandButton1.Caption = "ファイル取り込み"  Case Else   CommandButton1.Caption = "参照ファイル" End Select End Sub

joe7jp
質問者

お礼

ありがとうございました。 ボタンの表示は切り替わりました。 後は自分でできると思いますので、質問は打ち切ります。

その他の回答 (3)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.4

#2、#3です。補足です。 いちおうjoe7jpさんの希望に近い形でコードを提示しましたが、 基本的には#1さんがおっしゃっているように、 ボタンは2つに分けた方がいい(機能的)ような気がします。 理由は使いこんでみるとわかると思います。 そっちの方が便利なんですよね。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.2

「ボタン」といってもいくつも種類があります。 どのような形で書かれたボタンでしょうか。 1.ユーザーフォームのCommandButton 2.ワークシート上に「コントロールツールボックス」ツールバーで作成したCommandButton 3.ワークシート上に「フォーム」ツールバーで作成したCommandButton 4.ツールバー/メニューバーにユーザー定義ボタンとして登録したコマンドボタン

joe7jp
質問者

補足

2.ワークシート上に「コントロールツールボックス」ツールバーで作成したCommandButton   です。 言葉足らずで申し訳ありませんでした。 時間がありましたら回答のプログラムを教えてください。

  • Neko-chan
  • ベストアンサー率20% (15/72)
回答No.1

こんにちわ。  たぶん、問題なくできると思いますよ。  実現方法の一つとして、ボタンは2つあって  Visible,Enableでコントロールする とか。

関連するQ&A

  • Excelマクロ パスの指定方法

    Excelのマクロで別のファイルを編集するのにパスを指定しています。 現状は使用しているドライブ、フォルダが固定されているので下記の様に ドライブ名から指定しています。 <現状>  ・C:\AAA\BBB\PPP.xls   →マクロの入っているファイルを指定  ・C:\AAA\BBB\CCC\SSS.xls  →編集したいファイルを指定 今後、別のドライブやフォルダで使用出来る様にしたいのですがどうすれば よろしいでしょうか?  ・~\BBB\PPP.xls、~\BBB\CCC\SSS.xlsの位置関係は固定  ・~\BBB\CCCの下にあるSSS.xlsを開いて編集したい。  ・~\BBB\PPP.xlsがC\、D\等どのドライブ、フォルダになっても使用可能にしたい。 以上よろしくお願い致します。

  • EXCELのボタンによるマクロの登録名にファイル名が入ってしまう

     EXCEL2003を使用しています。  ネットワーク上の共有フォルダ上にEXCELファイルがあり、マクロを作成しボタンを配置して、クリックすると起動するようにしています。  そのファイルをコピーして場所を変えると、ボタンで参照されている(起動する)マクロが変わってしまいます。  たぶん書き方の問題と思うのですが、いい記述方法はないでしょうか?  具体的には、共有フォルダ上の「\\common\Book1.xls」 に、「CopyData」というマクロがあり、ボタンを配置して登録したとします。  そのままでは正しく起動します。  次に共有フォルダ上で同じBook1.xlsをコピーし、ローカルに移しててファイルを編集し、先のボタンをクリックして作業させようとしたのですが、ボタンでの登録が「\\common\Book1.xls!CopyData」のようになってしまい、うまく動作しません。  起動させたいのは「今開いているBookのマクロ」なのですが... ※シートでセルに参照式を入れると似たようなことが起こります。  参照式が入っているシートをコピーして他で編集し書き戻そうとしても、パスが追加され、うまくいきません。  合せてご存じの方、ご教示頂ければと思います。  以上、よろしく御願い致します。

  • エクセルのマクロで、別ファイルの数値を参照する方法

    現在aaa.xlsというファイルを開いていて、 そのセルA1には20070621という数値が入っています。 別にbbb_20070621.xlsというファイルがあって、 そのファイルのsheet1内の、B1の値を参照したいと思います。 bbb_20070621.xlsのようなファイルが無数にあるので、 ファイルを開かなければいけないINDIRECT関数は使いたくありません。 =INDIRECT("[bbb_"&A1&".xls]Sheet1!B1") ファイルを開かず参照できるように、 できればマクロ(VBA)で組みたいと思っています。 RangeやCellでいろいろ試してみたのですが、 どうもうまくいかず、 分厚いマニュアルにも書いてありませんでした。。 初歩的な質問ですいませんが、 どなたかよろしくお願いします。

  • 【大至急】excel2003 VBAマクロの質問

    excel2003でのVBAマクロを作っているのですが、いまいちよくわからないのです 下記条件を満たすサンプルコードのご教示をお願いします。 ■初期状態 仮にフォルダ、ファイル配置が下記の通りだとします C:\マクロ.xls C:\template.xls C:\aaa\ C:\bbb\bbb_test.xls C:\ccc\ . . . C:\nnn\ ■動作要件 (1)マクロ.xlsは自分のファイルパスを検索する (2)マクロ.xlsと同じフォルダにあるサブフォルダ配下に、各々フォルダ名_test.xlsというファイルを作成する (3)上記(2)で.xlsファイルを作成するとき、template.xlsをコピーして作成する (4)既にサブフォルダ配下に***_test.xlsファイルが存在する場合は作成しない <マクロ実行後の状態> C:\マクロ.xls C:\template.xls C:\aaa\aaa_test.xls ←template.xlsからコピー作成 C:\bbb\bbb_test.xls ←ファイル作成、上書きはしない C:\ccc\ccc_test.xls ←template.xlsからコピー作成 . . . C:\nnn\nnn_test.xls ←template.xlsからコピー作成 (5)上記(1)-(4)を、フォルダがなくなるまで繰り返す 以上です。よろしくお願いします。

  • Accessのマクロについて教えてください。

    WinXP Access2002です。 現在Accessのあるフォームにコマンドボタンを貼り付けこのボタンをクリック時にマクロでアプリケーションの実行を指定しExcelのファイルを開いています。具体的には c:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE10\EXCEL.EXE D:\EXCEL\AAAY\BBB.XLS です。D:\以下はExcelで作ったファイルの格納場所です。現在これでうまくいっています。 この場合BBB.xlsしか立ちあがりません。これはこれでBBB.xlsだけで用が足りているので何ら問題ないのですがやろうとしていることは¥AAAのホルダーに入っている複数のCCC.xls、DDD.xls・・・・・・等をマクロの途中ダイアログボックス等で仮に今ほしいファイルがXXX.XLSだったとしたら目的のXXX.xlsを指定し開く方法がありますでしょうか。 又これが駄目ならマクロで¥AAAのホルダーまで開く方法はあるのでしょうか。何せAccessのマクロでExcelは立ちあがりますが沢山のホルダーがあるので一歩でも自動で近づきたいのです。方法がありましたらよろしく教えてください。

  • excelマクロボタンのリンク先の表示方法

    よろしくお願いします。 excel2010にてマクロボタンを設定し、特定のsheetに飛ぶよう設定しました。 ●そのボタンにマウスポインタを持って行った際にリンク先が表示されるように  することは可能でしょうか? ●このボタンをクリックしたらどこへ飛ぶか、というのがわかるようにしたいの  ですが、良い方法がありましたら教えてください。 お願いいたします。 Sub マクロ名() Workbooks.Open ThisWorkbook.Path & "\ファイル名.xls" Worksheets("シート名").Activate End Sub

  • VBAを利用して、呼び出し元マクロのフルパスを取得

    現在、エクセルマクロの勉強をしているのですが、ご質問があります。 早速ですが、[マクロA]から[マクロB]を呼び出す時、[マクロA]のフルパスを[マクロB]から取得する事はできるのでしょうか。 [マクロA]のファイル名に関しては、"AAA_111.xls"だったり"AAA_222.xls"だったりします。 あいまい検索で実行中のブックの名前を取得し、そのファイル名を元にフルパスは分かるものでしょうか。 もしくは、効率の良い方法がありましたら、ご教授下さい。

  • EXCELマクロでセル関数パラメータに変数値を指定

    EXCELマクロで、セルにHYPERLINK関数の式を設定するマクロを作っています。 HYPERLINK関数のパラメータにはマクロ内で定義した変数に入れた値を指定したいのですが、 値ではなく変数名がそのままパラメータに指定されたHYPERLINK関数の式になってしまいます。 例) Sub ハイパーリンク設定マクロ() w_aaa = "C:\test\test.xls" w_bbb = "test.xls" ActiveCell.FormulaR1C1 = "=HYPERLINK(w_aaa,w_bbb)" End Sub 上記マクロで作成された式 =HYPERLINK(w_aaa,w_bbb) 期待する式 =HYPERLINK("C:\test\test.xls","test.xls") 対処方法がお分かりになる方がおりましたら、 ご教授願います。よろしくお願いします。

  • 【VBA】任意のファイルの一括操作について

    こちらの識者の方々にはいつもお世話になっております。 VBAで教えていただきたいことがあり質問いたします。 C:\aaa\に下記のexcelファイルがあります。 【見本】東京.xls 【見本】埼玉.xls 【見本】神奈川.xls 【見本2】千葉.xls これを 1.C:\bbb\へコピーし、 2.ファイル名の【見本】と【見本2】の文字列を削除し、 3.拡張子の前に本日の日付をyyyymmdd形式で追加し、 4.それぞれのexcelファイルのsheet1のa1セルにyyyymmdd形式で本日の日付を入力する。 というマクロを組みたいと思っています。 一つ一つnameステートメントでファイル名を変更したり、 open→Range("A1").Value→closeとやってもできるんですが、 条件もすこぶる単純ですし、一括でできるようなコードはないかと思っています。 最終的な期待するファイルのフルパスは↓のようになります。 C:\bbb\東京20130426.xls C:\bbb\埼玉20130426.xls C:\bbb\神奈川20130426.xls C:\bbb\千葉20130426.xls C:\bbb\へコピーするところまでは調べてできたのですが、 その先がこれというものを見つけられず。 どなたかご教示いただけないでしょうか。 宜しくお願い致します。 Sub Test() Dim objFSO As FileSystemObject Const cnsSOUR = "C:\aaa\*.xls" Const cnsDEST = "C:\bbb\" Set objFSO = New FileSystemObject objFSO.CopyFile cnsSOUR, cnsDEST, True Set objFSO = Nothing End Sub

  • excel マクロボタンで他のアプリ起動して表示させるには

    WinXPのexcel(2003)でボタンを設定して、そのボタンで、たとえば、Excelとは別の画面でメモ帳を立ち上げaaa.txtファイルを表示させるにはどのようなマクロを組めばいいのでしょうか?また、その発展で、ボタンをクリックすると、指定フォルダ内にある.txtを選択するボックスが表示させてその中からファイルを選択してメモ帳等で表示させることもできるでしょうか?

専門家に質問してみよう