• 締切済み

エクセルVBAで mod関数

はじめまして。 エクセルVBA初心者のも社会人です。 mod関数を使用して、 コマンドボタンを押すたびにコマンド1、コマンド2を繰り返すにはどのようにしたら良いのでしょうか? mod関数を使用してあまり0,1で行いたいのですがいまいちわかりません。 どなたかご教授お願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問の意味がわからない。 もっとしっかり、したいことを文章で良いから、明確に書く訓練をすること。その場合例を書く事は大切と思う。 ーーー (1)mod関数を使用して こんなこと、Googleででも{MOD VBA」で照会すれば http://www.accessclub.jp/vba/help/010.html ほか膨大な記事があるようだ。 http://oshiete1.goo.ne.jp/qa4721681.html のNO1回答を見てください。 MOD演算子が別途あります。 この辺の質問者の理解大丈夫か? ーー >コマンドボタンを押すたびにコマンド1、コマンド2を繰り返すにはどのようにしたら良いのでしょうか この意味はわからない。 コマンドボタンを1つ儲け、押すたびに、2つのルーティンを交互に実行したいのか ーー >mod関数を使用してあまり0,1で行いたいのですがいまいちわかりません この表現の意味こそ、>いまいちわかりません Togle的なことをやりたいのか? 参考 http://www.sophia-it.com/content/%E3%83%88%E3%82%B0%E3%83%AB == コマンドボタンを1つ、シートに張りつける。このクリックイベントに Private Sub CommandButton1_Click() Static x As Boolean If x = True Then MsgBox "A" x = Not x Else MsgBox "B" x = Not x End If End Sub のようなことを、したいのか。 MsgBox "A"は実際では、やりたい処理が入る。

urbt86703
質問者

お礼

分かりにくい質問をして申し訳ありませんでした。 それにもかかわらず回答していただきありがとうございます。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.2

御参考までに マクロは実行するたびに内部変数を初期化します。 (初期化させない方法もありますが、)前回実行の結果を 残して次の実行に使えるようにセルを1つ使います。 この場合A1又はB1がそれです。 どうしてもMODを使いたいなら例1 Macroをお使いください。 言われているような使い方でしたら例2 Macroの方が解りやすい と思います。 下記処理の後で if i=1 then   処理1 else   処理2 end if となります。 ' 例1 Macro i=Cells(1, 1) Cells(1, 1)= (i + 1) Mod 2 ' ' 例2 Macro ' i=Cells(1, 2) If i = 0 Then Cells(1, 2) = 1 Else Cells(1, 2) = 0 End Sub

urbt86703
質問者

お礼

分かりにくい質問をして申し訳ありませんでした。 それにもかかわらず回答していただきありがとうございます。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

何がしたいのかよくわりませんが、参考まで。 Sub macro() Static I As Integer MsgBox "コマンド" & I Mod 2 + 1 & "です" I = I + 1 End Sub

urbt86703
質問者

お礼

分かりにくい質問をして申し訳ありませんでした。 それにもかかわらず回答していただきありがとうございます。

関連するQ&A