- ベストアンサー
Excel での入力数字変更
Excel2003で作ったシートであるデータをスピンぼたんで増減していますが。 筆記作業と平行してやるため、毎回マウスに持ち帰るのが面倒です。 筆記作業をしながら、簡単にできるように、例えばカーソル上下キーで増減するようにできないでしょうか? その他の方法でもかまいません。 マクロでも結構ですが、マクロは初心者ですのでプログラムの書き方まで教えて下さい。 できれば、スピンボタンと併用できればベストです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 スピンボタンは、コントロールツールのものとして作られています。 マクロの設定の仕方。 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
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>マクロでも結構ですが、マクロは初心者ですのでプログラムの書き方まで教えて下さい。 こういうのは丸投げの質問の仕方は、当質問コーナーの規約違反。 不便だろうが、自分でプログラムでも組めないなら、規定の方法でやり、それ以外の方法は、あきらめるものだ。例えば金がなければ、必要なものもあきらめざるを得ないのが世の掟。ソフトだけ例外か? 文句だけになるので、私の趣味でやった一例を書いておく。 ーー 値をセットするセルには、矢印キーで到達する。 そこがアクチブセルになる。そこでファンクションキーの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)
こんちゃ。 ドロップダウンなら「Ait」+↓(↑)でコントールできたような…。
お礼
親切に教えていただいてありがとうございます。 うまくできました。