• ベストアンサー

エクセル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

専門家に質問してみよう