• ベストアンサー

Ex

http://oshiete1.goo.ne.jp/qa4685879.html​の訂正版です。 説明が不十分だったため変更します。 Excel2003での質問なのですが、 スピンボタンのリンク先を複数のセルに指定したいのですが、やり方がわからずに困っています。 具体的には 3つのセルの値を1つのスピンボタンで加減するように組みたいのです。 3つのセルの値は違うもので、=で繋げたくはありません。 添付ファイルの aのボタンを押すとAが±1 b    を押すとBが±1 c    を押すとCが±1 D    を押すとA・B・C±1 される。 というものです。 (1)A1、B1,C1を個々で+-するスピンボタンと (2)A1、B1、C1を一括で+-するスピンボタンを作りたいのです。 (1)は作れたのですが(2)のやり方がわかりません。 最初の回答通りにするとb or c のボタンを押すと、B.Cの=Aの値が書き換えられてしまいます。 よってDのボタンでabcを±1したいのです。 1つなら簡単にリンク先として指定できたのですが、複数選択するとエラーになってしまいます。 どうしたらいいでしょうか? やはりマクロ等を組まないといけないのでしょうか? 方法を知っている方がいらっしゃいましたら教えていただけると嬉しいです。 よろしくお願いします。

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

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

スピンボタンはフォームとコントロールツールの両方にあります、添付した図は分かりにくいかもしれませんが、赤枠で囲ったコントロールツールボックスのツールバーを開いてください。 ツールボックスの中のスピンボタンを選択して貼り付けたい位置に置いてください(この操作はフォームのスピンボタンの配置と同じ) スピンボタンを右クリックして[コードの表示]を選択 VBAのエディターが開きますので ----------------- Private Sub SpinButton1_Change() ’この間に希望の動作をするマクロを作成 End Sub ------------------ マクロの例 増減の変化を行うセルがA1,D1,G1の場合 ・同じ数字で変化させたい場合は zougen = SpinButton1.Value - 1 Range("A1,D1,G1") = Range("A1,D1,G1") + zougen SpinButton1.Value = 1 ・異なる数字で変化させる場合は zougen = SpinButton1.Value - 1 Range("A1") = Range("A1") + zougen Range("D1") = Range("D1") + zougen Range("G1") = Range("G1") + zougen SpinButton1.Value = 1 こんな感じでこの画面だコピーしたものを Private Sub SpinButton1_Change() ’ここに貼り付け End Sub ’ここに貼り付けの部分に貼り付けてください 貼り付けたらVBAエディターはそのまま閉じてください。 変更したらコントロールツールバーの[デザインモードの終了](図の緑で囲った部分)をクリック。 ※コントロールの編集時はデザインモードがONの状態で行います、スピンボタンの移動もデザインモードになってないと行えません。 分かったかな?

towm4c5
質問者

お礼

具体的な回答ありがとうございました。 とても分かりやすくスムーズに行なうことができました。 もう1つ質問させていただきたいのですが、 A1 D1 G1 それぞれに最大値と最小値を設定したいのですが、どうしたらいいでしょうか? ちなみに0~10の範囲です。 それ以上はボタンを押しても増減しないようにしたいのです。 よろしければ教えて下さい。 今回はありがとうございました。

その他の回答 (4)

  • netmaster
  • ベストアンサー率28% (11/39)
回答No.5

A1セルの分だけですが ------------ If Range("A1") > 10 Then Range("A1") = 10 'A1セルが10より大きい場合は10に書き換え Else 'A1セルが10以下の場合は下の処理を実施 If Range("A1") < 0 Then Range("A1") = 0 'A1セルが0より小さい場合は0に書き換え End If End If ------------ この処理を前回のマクロの下に追加 セル番地変更でほかのセルにも対応できます。

towm4c5
質問者

お礼

毎回ありがとうございます。 今回もお陰さまで達成することができました。 ありがとうございました。

  • CMLT
  • ベストアンサー率40% (143/357)
回答No.4

No.1です。 あくまでフォームのみでやる場合ですが、No.1について誤解があるようなので補足しておきます。リンクセルをA1~D1にした場合、数式を入れて表示させるのは、それ以外のセルです。A1~D1に数式は入れません。

towm4c5
質問者

お礼

なるほど。そういうことですね。 勘違いしていました、申し訳ありません。 今回は回答ありがとうございました。 また、よろしくお願いします。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

Dのスピンボタンはフォームのボタンではなくコントロールでのスピンボタンで Private Sub SpinButton1_Change() zougen = SpinButton1.Value - 1 Range("A1") = Range("A1") + zougen ’増減の必要な分だけ追加して下さい SpinButton1.Value = 1 End Sub こんな感じでコードを作れば、可能です。 フォームのスピンボタンにマクロを追加する場合も同じ方法が使えるか不明。

towm4c5
質問者

お礼

ありがとうございます。 当方初心者なものでやり方がわかりません。 解説をつけてもらうとありがたいのですが。。。

  • CMLT
  • ベストアンサー率40% (143/357)
回答No.1

一例ですが、 a、b、c、DリンクするセルをA1、B1、C1、D1にして、 実際に表示させるセルをそれぞれ =A1+D1、=B1+D1、=C1+D1 にするとか。A1~D1は文字色を白にしてしまえば見えませんし。

towm4c5
質問者

お礼

その方法も試しましたが。 A1などに数式を入れてもaを使うと上書きされて只の数値になってしまうので、無理でした。 アドバイスありがとうございました。

関連するQ&A

  • Excel スピンボタン 対象範囲(訂正)

    http://oshiete1.goo.ne.jp/qa4685879.htmlの訂正版です。 説明が不十分だったため変更します。 Excel2003での質問なのですが、 スピンボタンのリンク先を複数のセルに指定したいのですが、やり方がわからずに困っています。 具体的には 3つのセルの値を1つのスピンボタンで加減するように組みたいのです。 3つのセルの値は違うもので、=で繋げたくはありません。 A1 B1 C1 ▲ 1  5  6  ▼ ↑の状態で「▲」を押すと A1 B1 C1 ▲ 2  6  7  ▼ になる物を作りたいです。 (1)A1、B1,C1を個々で+-するスピンボタンと (2)A1、B1、C1を一括で+-するスピンボタンを作りたいのです。 (1)は作れたのですが(2)のやり方がわかりません。 1つなら簡単にリンク先として指定できたのですが、複数選択するとエラーになってしまいます。 どうしたらいいでしょうか? やはりマクロ等を組まないといけないのでしょうか? 方法を知っている方がいらっしゃいましたら教えていただけると嬉しいです。 よろしくお願いします。

  • 1つのスピンボタンで複数のセルの数字を変更

    Excel2003での質問なのですが、 スピンボタンのリンク先を複数のセルに指定したいのですが、やり方がわからずに困っています。 具体的には 3つのセルの値を1つのスピンボタンで加減するように組みたいのです A1 B1 C1 ▲ 1  5  6 ▼ A1、B1,C1を個々で+-するスピンボタンを作りたいのですが よろしくお願いします

  • スピンボタンの最大値を、増分にあわせて変化させたい

    エクセルにて、フォームで配置した、3つのスピンボタンの最大値を、他のボタンの増減や、初期値によって変化させたいと考えています。    A  |    B     |   C  | D  | 【初期値】|【リンクするセル】|【最大値】|【A+B】|ボタン 【初期値】|【リンクするセル】|【最大値】|【A+B】|ボタン 【初期値】|【リンクするセル】|【最大値】|【A+B】|ボタン      |【Bの合計】    | 【振り分けれる最大値】 例)    A  |   B   |  C  | D  |  50  | 1    | 49 | 51|  60  |      | 49 | 60|  50  | 50   |  0 |100|      | 51   |  49 元の最大値=100、振り分けれる最大値=100のとき、B1に1、B3に50振り分けるようにスピンボタンを動作させたときに求められる最大値C1~3にあわせてスピンボタンの最大値を変更させて指定し、それを超えて入力できないようにすることはできないでしょうか? 当方、WinXP、エクセル2003、マクロに関しては、マクロの記録を訂正して使う程度の知識です。

  • Excel スピンボタンの対象範囲

    Excel2003での質問なのですが、 スピンボタンのリンク先を複数のセルに指定したいのですが、やり方がわからずに困っています。 具体的には 3つのセルの値を1つのスピンボタンで加減するように組みたいのです。 1つなら簡単にリンク先として指定できたのですが、複数選択するとエラーになってしまいます。 どうしたらいいでしょうか? やはりマクロ等を組まないといけないのでしょうか? 方法を知っている方がいらっしゃいましたら教えていただけると嬉しいです。 よろしくお願いします。

  • エクセル・スピンボタンを使った時にイベントマクロを発生させたい

    エクセルでスピンボタンを使って数値を上下させたときに イベントマクロを発生させたいです セルC1の入力規則のリストから氏名を選択するとグラフが表示されるのですが いちいちリストから選択するのが面倒なので スピンボタンでリストの上から順番に見ていけるようにもしたいのです スピンボタン(セルA1にリンク)を操作 A1…スピンボタンにリンクして数字が変わる B1…INDEX関数でA1の数字とリストから氏名が選択される B1の値をC1に貼り付ける←ここをマクロにしたい イベントマクロで Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub Range("B1").Copy Range("C1").Select ActiveSheet.Paste End Sub としてもうまくいきません スピンボタンにリンクしたセルの値が変わったと時は Worksheet_Changeだと無理なので、どうしたらいいでしょう わかりにくい説明で申し訳ありません

  • Excel 開いているセルにペーストするには

    よろしくお願いします。 複数回コピぺをしたいのですが、一度目はコピーしたそれぞれのデータをそれぞれA1、B1、C1にペーストとvbaで指定すればそのセルから下方に向かってペーストされる様には出来たのですが、2回目以降に例えばA1358、B 1358、C 1358まで入力されているセルの一つ下の1359の位置からABC個々にペーストする様にするにはどの様にしたら良いのでしょうか? 散々ネットで探しているのですが、A1を指定して…などの関数の説明しか見つからずこちらに投稿しました。 ご教授下さい。

  • エクセルのスピンボタンのコピーについて

    エクセルのスピンボタンのコピーについて いろいろ検索し、試しましたがうまくいきません。 A2セルに氏名(A3,A4と下に1000人程います) B1セルに日付(C1,D1と右に1ヶ月分) B2セルにスピンボタンを設定し、そのスピンボタンを縦1000行、横30列にコピーしたいのですが うまくいきません。。。 佐藤さんが12/1に3回⇒セルB2へ「3」 山田さんが12/2に5回⇒セルC3へ「5」 という感じで表示させたくて、B2へスピンボタンを設定しコピーしたのですがうまくいきません。 どうしたらできるでしょうか。 スピンボタンはフォームコントロールのものを使用しています。 Windows 7 Excel2007を使用しています。

  • エクセルのリンクについて

    エクセルについて以下の質問があります。 例えば、A,B,Cの3つのファイルがあるとします。 そしてCファイルのA1セルに入力する数値を、AファイルのA1セルから持ってきているとします。(リンク) 同様にCファイルのB1セルには、BファイルのA1セルの値をリンクさせてきているとします。 この状態でA,B,Cの3つのファイルはリンクされている状態になっているのですが、これらを仮にテンプレートとし、それぞれをコピーします。(コピー先のファイルをD,E,Fファイルとします) するとこのD,E,Fファイルでは、元のA,B,Cファイルで掛けてあったリンクがクリアされてしまっています。 そこで今度はA,B,Cを1つのフォルダに入れ、フォルダごとコピーを掛けた場合、コピー先はリンクされたままです。しかし名前を変えるとリンクがクリアされてしまいます。 これを何とかクリアされずに、複数のファイルに掛けたリンクファイル郡をたくさん作りたいのですが、可能でしょうか?

  • Excel マクロでスピンボタンの操作

    A1とB1のセルには、それぞれ数値が入力されています。 その下(A2とB2)にはA1とB1の値を使って計算された値があります。 A1とB1の値はスピンボタンを使って1ずつ値が大きくなったり小さくなったりします。 そして、 A2とB2の値の大小を比べて、 ・A2が小さければ、A1の値を1大きくする ・B2が小さければ、B1の値を1大きくする ・等しければ、何もしない ということをしたいです。 マクロを組むしかないと思ったのですが、どのようにやれば良いのでしょうか? Excelはそこそこできますが、マクロはほとんどわかりません。 スピンボタンを使わなくても、同じようなことが自動でできれば構いません。 よろしくお願いしいます。

  • エクセル”検索条件はセル内のあいまい値”

    どうにも検討がつかず調べても対応したものができないのでお力添え願います。 D列に”A”と入力し、C列へ「D列のセル値が含まれた場合C値からB値をマイナスし それ以外は上のセル値を反映させる」としたいのですがどうするのがいいでしょうか。 直接値を指定してあいまい検索は『=IF(COUNTIF($A2,"*A*"),C1-$B2,C1)』でできたのですが この "*A*" 部分を”B”というときもあるのでD列のセル値であいまい検索としたいです。 A列の値は以下のように”A”の後ろに複数の数字がつくことがあります。 A列 A2 A3 B4 B3 B4 A2 A4

専門家に質問してみよう