- ベストアンサー
excelの入力について
エクセルで1桁の数字を1列にたくさん入力したいのですが、エンターキーを押すのが面倒に感じます。で、1桁数字を入力した瞬間に次の行に移動してくれたらいいのですが、恐らくVBAで何とかなるような気がするのですがどのように記述したらいいのか分かりません。このようなことが可能なら教えて頂きたいです。よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#ANo.1 のものです。ごめんなさい「"TenNum"」の部分の前に「'」 が抜けてました。「"'TenNum"」として下さい。 Sub xNumOn() With Application For i = 0 To 9 .OnKey "{" & i + 96 & "}", "'TenNum" & """" & i & """" & "'" Next End With End Sub Sub xNumOff() Dim i As Long With Application For i = 0 To 9 .OnKey "{" & i + 96 & "}" Next End With End Sub Sub TenNum(n As Long) With Selection .Value = n .Offset(1, 0).Select End With End Sub こうです。失礼しました。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
1つのアイデアを上げます。 テキストボックスをエクセルシートに貼り付けます。 テキストブックのデザインモード中にダブルクリクして Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Static i i = i + 1 Cells(i, "a") = Chr(KeyAscii) End Sub を貼り付けます。 テキストボックスのデザインモードを抜け、 テキストボックスに文字を入れると、1列に1セル1文字にセットされて行きます。 テキストがスクロールしないと不便であったり、 初期化(最初のセル指定)や終了はどうするかなど、仕様上で考えるべきことがあり、それらに対応する技術を要することがあります。 どの世界でも、珍奇なニーズには、自分で勉強して実現するか、金を出してプロにやらせるかでしょうね。
お礼
ありがとうございました。テキストボックスを使うという手もあるんですね。何かのときに参考にさせて頂きます。
つい先日 別板で回答したとこです。 Sub xNumOn() With Application For i = 0 To 9 .OnKey "{" & i + 96 & "}", "TenNum" & """" & i & """" & "'" Next End With End Sub Sub xNumOff() Dim i As Long With Application For i = 0 To 9 .OnKey "{" & i + 96 & "}" Next End With End Sub Sub TenNum(n As Long) With Selection .Value = n .Offset(1, 0).Select End With End Sub 「xNumOn」を実行で 1桁数字入力 「xNumOff」を実行で 元の入力方法に戻る 以上でどうでしょう。
お礼
解答ありがとうございました。標準モジュール二、上記をコピーし、やってみたんですが マクロ'Book1!TenNum"1"''が見つかりません。 というエラーメッセージが出てしまいます。 .OnKey "{" & i + 96 & "}", "TenNum" & """" & i & """" & "'" の部分を .OnKey "{" & i + 96 & "}", "TenNum" & "(" & i & ")" のように変えてもやはり マクロTenNum(1)が見つかりません。 というエラーメッセージが出てしまいます。 何がいけないのか分かりません。別板の方ではうまくいったんでしょうか。
お礼
ありがとうございました。出来るようになりました。ファイルを開くときにxNumOnを実行して閉じるときにxNumOffを実行するようにしました。