• ベストアンサー

Excel VBA ボタン動作について

Sheet1にあるCommandButton1で、Sheet2に移動せずSheet2に在るCommandoButton2を動作させたいのです。 Sheet2に在るCommandoButton2は、10ケの乱数を発生させています。 Sheet2のCommandButton2を使わずに、CommandButon1でその値をSheet1のセルに表示させたいのです。 要するに、乱数をSheet2で発生させてsheet1に表示させたいのです。 Sheet1のCommandoButton1にどんなcodeを書けばいいのでしょうか? いろいろ試しましたが、上手く動作しません。 宜しくお願い致します。

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

  • ベストアンサー
回答No.1

> Sheet2に在るCommandoButton2 コレにこだわる理由は何かおありですか? > 10ケの乱数を発生 このプロシージャを標準モジュール辺りに作っておいて、 CommandButton1で呼び出せば済むことだと思いますが。  ※そもそもCommandButton1ボタンにソレを書けば良いだけです。 とりあえず、参考URLを貼っておきます。 http://www.officepro.jp/excelvba/sub/index2.html どうしてもこだわりがあるなら > Sheet2に在るCommandoButton2 に割り当ててあるコードをPublicで宣言するとなんとかなるかもしれません。 Public Sub CommandButton2_Click()   ' 乱数を10個発生させる End Sub で、Sheet1のCommandButton1からCallを使って呼び出します。 Private Sub CommandButton1_Click()   Call Sheet2.CommandButton2_Click End Sub 参考にどうぞ。

Kumasan2016
質問者

お礼

tsubuyakiさん sheet1からcall Sheet2で解決しました。 有難うございます。

関連するQ&A

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

    ユーザーフォームにCommandButton1があります ワークシートにもCommandButton2があります ユーザーフォーム上のCommandButton1をクリックすることで、ワークシート上のCommandButton2をクリックするという命令は作れるのでしょうか? ワークシート上のCommandButton2をクリックした後の命令は出来ているのですが、そのコードをコピーしてユーザーフォーム上のCommandButton1のコードにコピーするしかないのでしょうか? 実行ボタン(CommandButton2)をワークシートに作成したので、 ユーザーフォームで入力→ ユーザーフォーム上のボタン(CommandButton1)をクリック→ ユーザーフォームは終了→ ワークシート上の実行ボタン(CommandButton2)をクリック してくれると良いかと思いました よろしくお願いします

  • エクセルVBAのボタン操作について

    sheet1にコマンドボタン(CommandButton1)を貼り付けて sheet2にもコマンドボタン(CommandButton1)を貼り付けています。 sheet1のコマンドボタンを押すとVBAで処理をして sheet2を表示後 自動的にsheet2のコマンドボタンにかかれたVBAの処理をしたいのですがうまくいきません。 教えてください。 環境windows2000 office 2000 sheet1のボタンの最後 Sheets("2").Select ActiveSheet.Shapes("CommandButton1").Select でうまくいきません。

  • Excell(2003) VBA UserForm上のSheetの参照方法は

    Excell2003にてuserForm1にコントロールとしてスプレッドシートを載せています。 このuserForm1には、別にテキストボックス(textbox1)とコマンドボタンが二つ(commandButton1とCommandButton2)があります。 commandButton1がクリックされたとき、textbox1に入力された値をチェックしたのち、Me(userForm)上のSheet1の適当なセル(たとえばA2)にその値を入力したい。  また、CommandButton2がクリックされたときは、Sheet2のA2に入力したい。その場合Sheet2を表示する動作も必要です。  この場合 Q:本体のSheetではなく、フォーム上のSheetを指定する方法 Q:複数のSheetからなるフォーム上のspledSheetのいずれかを表示する方法  はどのようにしたら良いのでしょう。

  • エクセルの動作がおかしいて困っています

    エクセルの動作がおかしい バージョンはExcel2002です。 あるファイルの管理一覧表をエクセルで作成し、使用していましたが2,3日前から動作がおかしくなってきました。 (1)オートフィルタでデータの絞り込みが正しく出来ない。  → 「▽」をクリックし、シート内に1つしかない値を選択しても、選択したデータを含みその他の関係無いデータまで表示される。    既存のその他のエクセルファイルで同様の操作をしても正常にデータの絞り込みは出来ており、この管理一覧表にのみ起こっています。。 (2)ハイパーリンクが開かない  → (1)の現象が起こる前から頻繁にありましたが、最近発生率が高くなった。    色々と調べたところエクセルの不具合によるもの?とかいう原因を見つけて仕方が無いかと思いましたが、    あまりに頻発するので不便で作業がはかどらなく困っています。    現在は一旦エクセルを終了し、立ち上げ直すと正常に開くようにはなります。 (3)参照セルの値が勝手に変わる  → 同じファイル内の他シートの値を参照し表示させています(例:「=シート名!$F322」というように)。    1週間に一度参照先のセルの値を更新(10ずつプラスする)しているのですが、    更新の2,3日後に見てみると勝手にセルの参照先が変わっています。    「=シート名!$F322」としていたのに、「=シート名!$F332」になっている。    必ず変わっている訳でもなく、変わる時と変わらない時があります。    変わる時には必ず10ずつ増えています。    私以外このファイルを変更している人はいません。 原因と対処方法を教えてください。 よろしくお願いします。

  • Excel VBA スピンボタンの使い方

    Excel VBA 初心者です。 ActiveXでシート上にTextBox1とSpinButton1を配置した場合で、 SpinButton1.Valueの値をコードで設定したとき、それまでの値と異なっていてもChangeイベントを発生させない方法はあるでしょうか。 例えば以下のようなコードです。 ---------------------- Private Sub 初期設定() 'ここでSpinButton1.Enabled = False を入れてもグレーアウトするのみでChangeイベントは発生する Dim N As Long N = 20 SpinButton1.Value = N '↑TextBox1.Valueが<>Nの時でも 'ここでChangeイベントに飛ばさない方法はあるでしょうか? End Sub '↓通常はこの動作 Private Sub SpinButton1_Change() TextBox1.Value = SpinButton1.Value 'さらにこのあと数値増減による処理有り End Sub ---------------------- 「SpinButton1.Enabled = False」ではグレーアウトはしますがコードからの設定ではChangeイベントは発生しました。 宜しくお願い致します。

  • Excel VBAの不可解(?)な動作について

    Excel 2000 VBAでの質問です。 Sheet1に以下のようなコードを書きました。 --------------------------------------------------------- Public Sub test() Application.DisplayAlerts = False Sheets("Sheet2").Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "test" Sheets("test").Visible = xlVeryHidden Sheets("Sheet3").Visible = xlVeryHidden Sheets("test").Visible = True Sheets("test").Delete Sheets("Sheet2").Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "test" '問題の行 Application.DisplayAlerts = True End Sub --------------------------------------------------------- このコードで期待している動作は、最終的にSheet3(xlVeryHiddenになっている)の後ろにSheet2をコピーし、その名前を「test」にするというものです。 しかし、実際にはSheet3の後ろにSheet2がコピーされるものの、名前はSheet2が「test」と変更されてしまいます。 Sheets.Countの値はSheet3をさしているはずなのですが・・・。 皆様に教えていただきたいのは、 ・この意図しない動作がなぜ起こるか ・どうすればこの問題を回避できるか です。よろしくお願いいたします。 もし初歩ミスでしたら、申し訳ありません・・・。ご指摘ください。

  • エクセル上のVBA

    当方、VBAまるっきり初心者です(触りはじめて3日くらい)。 エクセルはある程度理解しているつもりですが… バージョンはエクセル2000です。 他シートのセルのひとつに入力すれば、 別シートのセルがそれを参照したうえで 値として表示出来るようにならないでしょうか。  今のところ、以下のような状況です。 step01 sheet1のセルA1に任意の数値(整数限定です)を入力。 step02 sheet2のセルA1に、sheet1のセルA1の数値を用いて     MOD関数で余りを出す。 step03 sheet2のセルB2に以下のVBAによって     step02の余りを値として表示。      Private Sub Worksheet_Change(ByVal Target As Range)        Range("b2").Value = Range("a1")      End Sub  これだとsheet1の数字を変えても、 sheetの切替後sheet2のセルB2に 表示される値が変わってくれません。  最初の入力(step01の入力)をおこなえば sheet2のセルB2まで値が変わってくれるような方法を 教えていただけないでしょうか。  拙い説明で申し訳ありませんが、よろしくお願いします。

  • エクセルVBAのコードの書き方を教えてください

    エクセルVBAの初心者です。 下記①-⑲のようなコードを書きたいのですが、どなたかお分かりになる方がいましたら、 ご教示いただけますと幸いです。 ① オートフィルターでシート[list]のA列に"●"がある特定の行だけを以下作業の対象にしたい ② ①で特定した行のE列セルの値を、シート[output]のB9セルにコピペする ③ ①で特定した行のF列セルの値を、シート[output]のB12セルにコピペする ④ ①で特定した行のG列セルの値を、シート[output]のB15セルにコピペする ⑤ ①で特定した行のH列セルの値を、シート[output]のB18セルにコピペする ⑥ ①で特定した行のI列セルの値を、シート[output]のB21セルにコピペする ⑦ ①で特定した行のJ列セルの値を、シート[output]のB24セルにコピペする ⑧ ①で特定した行のK列セルの値を、シート[output]のB27セルにコピペする ⑨ ①で特定した行のL列セルの値を、シート[output]のB30セルにコピペする ⑩ ①で特定した行のM列セルの値を、シート[output]のB33セルにコピペする ⑪ ①で特定した行のN列セルの値を、シート[output]のB36セルにコピペする ⑫ ①で特定した行のO列セルの値を、シート[output]のB39セルにコピペする ⑬ ①で特定した行のP列セルの値を、シート[output]のB42セルにコピペする ⑭ ①で特定した行のQ列セルの値を、シート[output]のB45セルにコピペする ⑮ ①で特定した行のR列セルの値を、シート[output]のB48セルにコピペする ⑯ ①で特定した行のS列セルの値を、シート[output]のB51セルにコピペする ⑰ ①で特定した行のT列セルの値を、シート[output]のB54セルにコピペする ⑱ ①で特定した行のU列セルの値を、シート[output]のB57セルにコピペする ⑲ シート[output]のB3:B59をテキストファイルを呼び出してコピペする ※このとき、上記②-⑱で記述したB9からB57のセルには改行が含まれる場合が  あるため、テキストファイルへのペースト時に""が表示されてしまうが、  もし可能であれば、この""が表示されないようにしたい。

  • Excel VBA OptionButton

    Excel VBAのOptionButtonについてお伺いします。 現在、Excel2007にてユーザーフォームを作成しております。 シート上の文字によって、ユーザーフォーム上のオプションボタンの ON/OFFを切り替えたいのですがうまく動作しません。 具体的には・・・・ ユーザフォーム上のCommandButton1を押下すると、 sheet2のE22セルの文字がTRUEの場合、ユーザーフォーム上の OptionButton1がON・OptionButton2がOFF sheet2のE22セルの文字がFALSEの場合、ユーザーフォーム上の OptionButton1がOFF・OptionButton2がON 以下のように考えていたのですが、動作しません。 ------------------------------ Private Sub CommandButton1_Click() If sheet2.Range("E22").Value = "TRUE" Then OptionButton1.Value = True ElseIf sheet2.Range("E22").Value = "FALSE" Then OptionButton2.Value = True End If ------------------------------ お知恵お借りしたく存じます。 宜しくお願い致します。

  • VBAの書き方を教えてください

    EXCEL2003を使用しています。 特定のセルの値を取得して、値と同じシート名を検索して移動する事はVBAで可能でしょうか? 具体的に、sheet1のA1はVLOOKUPにて検索後の値(りんご)が表示されています。 コマンドボタンにて、A1の値(りんご)を取得して、数十枚あるシートの中からA1と同じ値(りんご)の名前のシートに移動したいのです。 いろいろ探したのですが、よく分からなかったので教えて下さい。

専門家に質問してみよう