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

このQ&Aに関連する最新のQ&A

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/05/21 19:15

>マクロでも結構ですが、マクロは初心者ですのでプログラムの書き方まで教えて下さい。


こういうのは丸投げの質問の仕方は、当質問コーナーの規約違反。
不便だろうが、自分でプログラムでも組めないなら、規定の方法でやり、それ以外の方法は、あきらめるものだ。例えば金がなければ、必要なものもあきらめざるを得ないのが世の掟。ソフトだけ例外か?
文句だけになるので、私の趣味でやった一例を書いておく。
ーー
値をセットするセルには、矢印キーで到達する。
そこがアクチブセルになる。そこでファンクションキーの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 …
アクセスキー
    • good
    • 0

こんちゃ。



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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報