• ベストアンサー

Excel での入力数字変更

Excel2003で作ったシートであるデータをスピンぼたんで増減していますが。 筆記作業と平行してやるため、毎回マウスに持ち帰るのが面倒です。 筆記作業をしながら、簡単にできるように、例えばカーソル上下キーで増減するようにできないでしょうか? その他の方法でもかまいません。 マクロでも結構ですが、マクロは初心者ですのでプログラムの書き方まで教えて下さい。 できれば、スピンボタンと併用できればベストです。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 スピンボタンは、コントロールツールのものとして作られています。 マクロの設定の仕方。 Alt + F11 -> 挿入 -- 標準モジュール で画面を開く 以下をすべて貼り付けます。Ctrl + S (保存) カーソルをAuto_Open の下のところに置き、F5 を押します。Alt + F4 でVBEditor 画面を閉じれば、設定されています。または、一旦、終了して、再び起動しても設定されます。 「カーソル上下キーで増減する」は、Ctrl との組み合わせです。当然、Ctrl + ↓/Ctrl + ↑ の既存のショートカットは使えなくなっています。ブックを終了すれば、元に戻ります。 なお、余談ですが、一般的に、ショートカットキー(通称、ダイヤモンドカーソル)は、左手で行うというような設計がされていたのですから、Microsoft は、その原則を、Windows でなくしてしまいました。 ''標準モジュールに貼り付ける ''----------------------------------------------------- Sub Auto_Open()  Call Set_Keys End Sub Sub Auto_Close()  Call Set_KeysOff End Sub Sub UpSpin()   Dim r As Range   Dim i As Double   Dim u As Double   Dim l As Double   On Error GoTo ErrHandler   With ActiveSheet.SpinButton1     Set r = Range(.LinkedCell)     i = .Object.SmallChange     u = .Max     l = .Min     If u >= r.Value + i Then       r.Value = r.Value + i     End If     Set r = Nothing   End With ErrHandler: End Sub Sub DownSpin()   Dim r As Range   Dim i As Double   Dim u As Double   Dim l As Double   On Error GoTo ErrHandler   With ActiveSheet.SpinButton1     Set r = Range(.LinkedCell)     i = .Object.SmallChange     u = .Max     l = .Min     If l <= r.Value - 1 Then       r.Value = r.Value - i     End If     Set r = Nothing   End With ErrHandler: End Sub Sub Set_Keys() 'Ctrl+ ↑ '上げる 'Ctrl+ ↓ '下げる Application.OnKey "^{UP}", "UpSpin" Application.OnKey "^{DOWN}", "DownSpin" End Sub Sub Set_KeysOff() '設定をクリアする Application.OnKey "^{UP}" Application.OnKey "^{DOWN}" End Sub

ganchan59
質問者

お礼

親切に教えていただいてありがとうございます。 うまくできました。

その他の回答 (2)

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

>マクロでも結構ですが、マクロは初心者ですのでプログラムの書き方まで教えて下さい。 こういうのは丸投げの質問の仕方は、当質問コーナーの規約違反。 不便だろうが、自分でプログラムでも組めないなら、規定の方法でやり、それ以外の方法は、あきらめるものだ。例えば金がなければ、必要なものもあきらめざるを得ないのが世の掟。ソフトだけ例外か? 文句だけになるので、私の趣味でやった一例を書いておく。 ーー 値をセットするセルには、矢印キーで到達する。 そこがアクチブセルになる。そこでファンクションキーのF3を1回押すと+1される。F3はエクセルで、たいした働きをしないようだから(詳しくは無い)。+キーでもよいがキー・トップの上段の文字で、SHIFTキーがいるので不適。 2回続けて押せば、2になる。 ツールーマクローVBEの操作をして、出た画面で、挿入ー標準モジュールの操作をする。その画面で下記をコピペ。 Sub test01() Application.OnKey "{F3}", "test02" End Sub Sub test02() ActiveCell = ActiveCell + 1 End Sub Test01を実行しておく。 ーー マイナスするため他のキーを決めて上記の一部を修正したコード群をつくることが必要だが、略。 ーー Googleなどで「Application.OnKey」で照会して勉強のこと。 ーー キーでコントロール(アップダウンコントロール)にACCESSしたり ▼のクリックをキーでシュミレイトするのは高等な課題だと思う。 ーー http://msdn.microsoft.com/ja-jp/library/az5a73z1.aspx アクセスキー

  • d_umi_b
  • ベストアンサー率28% (6/21)
回答No.1

こんちゃ。 ドロップダウンなら「Ait」+↓(↑)でコントールできたような…。

関連するQ&A