• ベストアンサー

エクセルVBA ユーザーフォームとカレントファイル

ある一つのエクセルファイルで、ユーザーフォームを用いてマクロをつくりました。 このファイルを開いた状態で、かつ、このユーザーフォームを実行した状態で、これとは別に開いている他のエクセルファイル(カレント状態)にこのユーザーフォームのマクロを実行させたいです。 以前、望まないのに、他のファイルに実行された記憶があるのですが、2010のエクセルに変えたせいか、そのようなことができません。 ユーザーフォームにどのような設定をしたらよいか教えていただきたいです。

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

  • ベストアンサー
  • nao-y
  • ベストアンサー率58% (111/190)
回答No.1

えーと、ファイルAにUserForm1があって、 そのUserForm1からファイルBに対して操作をなさりたいということで、 よろしいでしょうか? > 2010のエクセルに変えたせいか、そのようなことができません。 とのことですが、何か試されたという認識で合ってますか? その場合、どんなコード・手順を試されたか教えてくださった方が 的確な回答ができます。 例えば、以下のようなことをなさりたいのですか? 0.(前提)ファイルAのModule1に以下のマクロがあるものとする。 Sub Test() UserForm1.Show End Sub 1.UserForm1のコードに以下のものを追加する。 Private Sub CommandButton1_Click() Cells(1, 1).value = "テスト" End Sub 2.ファイルBを開く。 3.マクロの実行でマクロ"Test"を実行する。 →結果:ファイルBのA1セルに「テスト」と表示されると思います。 上記のコードでOKかNGか、すでに試された手順・コード等を 補足願います。

unserious
質問者

お礼

質問とご理解は一致しております。 内容を詳しく書いていただき原因がわかりました。 私は、ユーザーフォーム上にすべてのコードを書きました。 したがって、ユーザーフォームは直接実行します。 これですと、ユーザーフォームがあるそのファイルAにしか実行できませんでした。 しかし、Moduleファイルで、ユーザーフォームを呼び出すだけで、ファイルBをカレントにすればファイルBへ、ファイルCを開いていればファイルCへ実行することができました。 勉強になりました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • カレントディレクトリにあるExcelファイルを全て開く

    Excelのマクロ機能などを利用してカレントディレクトリ(というかマクロを実行するファイルが格納されたフォルダ)内のその他のExcelファイルを全て開かせるにはどうすればよいでしょうか?フォルダ名の指定はせず、実行するファイルを移動しても動作するようにしたいです。

  • Excel VBAでユーザーフォームだけ表示したい

    Excel VBAでユーザーフォームを作成し、ファイルを起動時にSheetを非表示にしてユーザーフォームのみ表示させるようにしました。 そうしたところ、 (1)実行ボタンをクリックすると作成されるExcelファイルも表示されなくなる (2)終了ボタンをクリックするとユーザーフォームを含むExcelファイルだけが閉じるのではなく、Excelのアプリ自体が終了してしまう(実行ボタンで作成したExcelファイルは表示したままにしたいのに閉じてしまう) という現象になってしまいました。 某書籍を参考にしてコードを書いたのですが、なぜかこのようになってしまいました。 ※「★」が書籍に指示があった箇所です。 <ThisWorkbook> Private Sub Workbook_Open() Application.Visible = False '★ myForm.Show '★ myForm.MultiPage1.Value = 0 'マルチページ構成のため End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '========== [×]ボタン,[Alt]+[F4]キーを無効にする ========== Dim msg As String, title As String msg = "[画面を閉じて終了する]ボタンから終了してください。" title = "終了方法" Dim res As Integer Select Case CloseMode Case vbFormControlMenu res = MsgBox(msg, vbOKOnly + vbCritical, title) Cancel = True End Select ActiveWorkbook.Save '★ Application.Visible = True '★ Application.Quit '★ End Sub 実行したいのは、 (1)ユーザーフォームを含むExcelファイルを起動したときは、起動時にユーザーフォームだけが表示されるようにしたい  ※ワークシートを非表示としたい (2)「実行」ボタンをクリックすると、プログラムが実行されExcelファイルが新規で作成され表示される  ※上記で記載した「★」の部分をコードをコメントアウトしてユーザーフォームから実行ボタンをクリックすると、プログラムが実行され正常にExcelファイルが新規で作成されることは確認済みです。 (3)ユーザーフォームが閉じても、ユーザーフォームのExcelファイルのみ閉じ、新規で作成されたExcelファイルは閉じない。  ※実行ボタンをクリックして新規ファイルを作成しなかったり、他にExcelファイルがなかった場合は、Excelは終了する。 それとあわせて、 (1)を実行できた場合に、再度コードを編集する時はどうしたらExcelの画面が表示できるのか教えて下さい。  ※それとも表示できないのでしょうか? 作成締め切りが迫っていて焦っています。 お知恵のある方どうかお力添え下さい。 よろしくお願い致します。

  • VBAでのユーザーフォームの使い方

    VBAのマクロでユーザフォームにボタンを配して、それによってエクセルシートのデータを更新するようなマクロを作りたいのですが、ユーザフォームの挿入でボタン配置まではできるのですけど、どのようにリンク付けするのかコーディング等、解りません。お教え下さい。簡単なサンプルコーディングがあれば助かります。

  • エクセルVBAでのユーザーフォームでの作り方

    ユーザーフォームを作りたくて質問させていただきます。 まずユーザーフォームを作り、そこに検索ボタンを作って そのボタンを押すと、ユーザーフォームの検索という 別の画面がでてくるよにしたいのですが、ボタンを押しても その画面が出てこなくて困っています。 まだまだ勉強したてで、なるべく自分の使いやすいよう エクセルで作りたいので、教えてください。 よろしくお願いします。

  • エクセルVBAの質問です

    エクセルユーザーフォームをモードレスで起動した状態で、セルを手動で操作しユーザーフォームをクリックしたらマクロを実行する。 ということをしたいです。 順を追って書くと (1)ユーザーフォームを起動(モードレスで) (2)A1セルに文字を直接打ち込む(ユーザーフォームが選択されていない状態) (3)ユーザーフォームをクリック(ユーザーフォームを選択)したら指定したマクロを実行 この(3)のところができません。(というか考え方が分からず・・・) 分かりにくい質問で申し訳ございませんが、アドバイスの程よろしくお願いします。 (ちなみにエクセル2003を使用しています。)

  • エクセルのユーザーフォームについて

    エクセルのユーザーフォームについて教えてください。 ユーザーフォームにてメニュー画面を作成しました。 ユーザーはメニューからの操作だけでエクセルシートを作成できるようなマクロをつくりました。 ユーザーフォームのコマンドボタンでEXCELを終了させることはできますか? VBAの記述方法も教えてください。

  • ユーザーフォームの再起動

    ブックを開いたと同時に、自動でユーザーフォームをモードレス状態で起動させています。 このマクロ付Excelファイルを使用している開発タブなどを有効にしていないエンドユーザーがフォームを閉じてしまった場合に ファイルを再起動しないで、簡単にユーザーフォームを再表示させる方法はございますか?

  • VBAユーザーフォームの色が反映しない

    またぞろVBAよろしくお願いします。 今回はユーザーフォームを作りマクロを走らせている間『処理中』の表示をさせるようにしています。 そこでユーザーフォームのBackColorをパレットより選んで黄色とかにしているのですが、いざマクロ実行してみると色はグレー色のままだし、ラベルも反映していないのでコメントも出ないフォームが画面上に出ます。 でも、Captionでのコメントは反映して切り替わっています、フォーム自体の大きさも変更すると反映しています。 同じエクセルブックにもう一つユーザーフォームはつけていますがそちらはバッチリとデザインしたフォームで表示されます。 このフォームとの相違点はマクロ実行させる時に表示させているシートが違うぐらいなのですが、そういたっものも関係あるんですかね? 何処を修正したらよいのか、何故今回は反映してくれないのかホトホト困っておりますのでなにかアドバイスあればお願いします。

  • エクセルでユーザーフォームを開いても入力できません

    エクセルでユーザーフォームを作成し、商品コードを入力してマスタより内容の表示をさせるマクロを作成しました。 実行させるとフォームが開き商品コードでカーソルが点滅しているのですが商品コードが入力できません。しかしタイトルバーのところをクリックすると入力できます。どうもフォームが非活 性になっているように思えます。 ユーザーフォームはマクロでUSERFORM1.SHOWで開いています。原因がどこにあるかアドバ イスいただければ幸いです。 エクセルは2016、OSはWINDOWS7です。 宜しくお願い致します。

  • エクセルVBAのユーザーフォーム

    おはようございます! エクセルVBAにてユーザーフォームを作りました。(通常フォーム以外からの入力をしないように保護してあるので)ファイルを開いたときにまずフォームを立ち上げるのですが、フォームからの値が反映するように下記の通りパスワード解除のボタンを作りました。 Private Sub CommandButton5_Click() Worksheets("○○◎").Unprotect Password:="××" End Sub こんなファイルをweb上で公開して他の人に数値を入力させようと思っている次第なのですが・・・。 PCで作っているときはうまく動作するのですが、webにのせたものだと上記のボタンを押すとエラーになります。 実行時エラー'1004' 'Worksheets'メソッドは失敗しました:'_Global'オブジェクト とでているのですが、これはどういう意味でしょう??? 初心者なもので全く分からず作っています。 どなたか教えて下さい!!! よろしくお願い致します。

カラーに縦縞が入る
このQ&Aのポイント
  • ノズルチェックでマゼンタが下半分色が出ていない状態。
  • クリーニングでも改善せず。
  • キヤノン製品についての質問です。
回答を見る

専門家に質問してみよう