- ベストアンサー
Excel VBA ボタン動作について
Sheet1にあるCommandButton1で、Sheet2に移動せずSheet2に在るCommandoButton2を動作させたいのです。 Sheet2に在るCommandoButton2は、10ケの乱数を発生させています。 Sheet2のCommandButton2を使わずに、CommandButon1でその値をSheet1のセルに表示させたいのです。 要するに、乱数をSheet2で発生させてsheet1に表示させたいのです。 Sheet1のCommandoButton1にどんなcodeを書けばいいのでしょうか? いろいろ試しましたが、上手く動作しません。 宜しくお願い致します。
- Kumasan2016
- お礼率94% (36/38)
- Excel(エクセル)
- 回答数1
- ありがとう数2
- みんなの回答 (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 参考にどうぞ。
関連するQ&A
- エクセルVBA ユーザーフォームのボタン
ユーザーフォームにCommandButton1があります ワークシートにもCommandButton2があります ユーザーフォーム上のCommandButton1をクリックすることで、ワークシート上のCommandButton2をクリックするという命令は作れるのでしょうか? ワークシート上のCommandButton2をクリックした後の命令は出来ているのですが、そのコードをコピーしてユーザーフォーム上のCommandButton1のコードにコピーするしかないのでしょうか? 実行ボタン(CommandButton2)をワークシートに作成したので、 ユーザーフォームで入力→ ユーザーフォーム上のボタン(CommandButton1)をクリック→ ユーザーフォームは終了→ ワークシート上の実行ボタン(CommandButton2)をクリック してくれると良いかと思いました よろしくお願いします
- 締切済み
- Excel(エクセル)
- エクセル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(エクセル)
- 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のセルには改行が含まれる場合が あるため、テキストファイルへのペースト時に""が表示されてしまうが、 もし可能であれば、この""が表示されないようにしたい。
- ベストアンサー
- Visual Basic
- 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 ------------------------------ お知恵お借りしたく存じます。 宜しくお願い致します。
- ベストアンサー
- Visual Basic
- VBAの書き方を教えてください
EXCEL2003を使用しています。 特定のセルの値を取得して、値と同じシート名を検索して移動する事はVBAで可能でしょうか? 具体的に、sheet1のA1はVLOOKUPにて検索後の値(りんご)が表示されています。 コマンドボタンにて、A1の値(りんご)を取得して、数十枚あるシートの中からA1と同じ値(りんご)の名前のシートに移動したいのです。 いろいろ探したのですが、よく分からなかったので教えて下さい。
- ベストアンサー
- Excel(エクセル)
お礼
tsubuyakiさん sheet1からcall Sheet2で解決しました。 有難うございます。