• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:キーを押すごとに、連番が打てますか?)

キーを押すごとに、連番が入力される方法はありますか?

このQ&Aのポイント
  • 質問文章からセンセーショナルなタイトルを30文字前後で生成
  • 一つのキーだけで、連番が入力できる方法を質問しましたところ、以下の方法で教えてくださいました。
  • マウスのダブルクリックでなく、何かのキーで、この動作をする命令はないでしょうか?

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>しかし、マウスのダブルクリックは、セルの編集状態にする、のコマンドとして反応しますので、該当の入力とはなりません 再掲: >A列のセルを希望の順にWクリックする。 勝手にご自分の(不明の)列でWクリックしている状況が想定されます このマクロでは、回答した通りA列をWクリックします。 >マウスのダブルクリックでなく、何かのキーで、この動作をする命令はないでしょうか? 繰り返しになりますが、具体的に「どこの列で」それをしたいのか相変わらずナイショのままなので、それが原因で教わったやり方も上手くいかない可能性が続いています。 手順: ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1() activecell = application.max(activecell.entirecolumn) + 1 end sub ファイルメニューから終了してエクセルに戻る ツールメニューのマクロのマクロを開始する macro1を選び、ダイアログの「オプション」をクリックする 現れたダイアログの Ctrl +   の右欄に希望のキー、たとえば小文字の i を打ち込んでOKし、さらにダイアログを閉じる。 好きな列のセルを選び、Ctrlキーを押しながらiのキーを押す。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

AN3です。連番の最大値を指定出来るように修正しました。 Sub Macro1() Dim Position As String, Position1 As String, Position2 As String Position1 = "A1" '初期値用アドレス Position2 = Range(Position1).Offset(1, 0).Address '連番の最大値用アドレス Position = Range(Position1).Offset(2, 0).Address '現在値 ActiveCell.Value = Range(Position).Value If Range(Position).Value >= Range(Position2) Then Range(Position).Value = Range(Position1).Value Else Range(Position) = Range(Position) + 1 End If End Sub 使い方 (1)上記マクロを登録し、オプションメニューでショートカットキーを(例えば)ctrl+aに設定 (2)マクロ側で使用するセルを選び、上記Position1にそのアドレスを記入。上記ではA1にしてます。このセルを先頭に縦3個のセルをマクロ側で使用します。空けておいて下さい。 (3)(2)で選んだセルの先頭に初期値1を、1個下のセルに連番の最大値(例えば8)を記入 (4)入力したいセルを選び(1)で選んだショートカットキーを押すとマクロが起動し、1,2,3と順番に最大値までセルに入力されます。最大の次はもちろん初期値に戻ります。

tamaki1954
質問者

お礼

ありがとうございました。 おかげさまで、こんなマクロの使い方が勉強できました! 感謝します。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

Sub Macro1() Dim Position As String Position = "A1" ActiveCell.Value = Range(Position).Value Range(Position) = Range(Position) + 1 End Sub マクロ登録方法は御存知と思っていいのでしょうか? 標準モジュールに写し、他回答にあるようにオプションにて、例えばctrl+aで起動するよう設定します。キー2個ですが。 使い方 (1)普段使わないセル番号から1セル選び、Positionに書く。上記ではA1に設定してます。このセルはマクロ側で使用します。 (2)(1)で選んだセルに初期値1を入力 (3)キーを押すたびにアクティブセルに1,2,3と入力されます (4)初期値は残るので、使用終了後に初期値は手動で削除してください。 初期値1を変えれば望みの数字から始められます。

tamaki1954
質問者

お礼

ありがとうございました。 おかげさまで、マクロにもいろんな手法があるのが、勉強できました。 また、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! >マウスのダブルクリックでなく、何かのキーで、この動作をする命令はないでしょうか? Ctrl+q での操作にしてみました。 まず↓のコードを標準モジュールにコピー&ペーストしてみてください。 Sub Sample1() If Selection.Column <> 1 Or Selection.Count > 1 Then Exit Sub Selection = WorksheetFunction.Max(Range("A:A")) + 1 End Sub 次に操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペースト → Excel画面に戻り、A列を選択後Ctrl+qキーを押下 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.OnKey "^q", "Sample1" End Sub ※ A列限定としています。 こんなんではどうでしょうか?m(_ _)m

tamaki1954
質問者

お礼

ありがとうございました。 おかげで、随分勉強になりました。 お手数をかけました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel2007 マクロについて

    たとえばですが sheet1のF5列をダブルクリックすると、その左側にあるA5の値をコピーし sheet2のA列の未入力行へ貼り付けするにはどうしたらよいでしょうか Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, cancel As Boolean) If Intersect(Target, Range("F:F")) Is Nothing Then Exit Sub cancel = True End Sub とりあえずここまで作って開くことは開いたのですが、その先がわからず困っております。 よろしくお願いいたします。

  • Excel VBAについて

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, cancel As Boolean) If Intersect(Target, Range("F:F")) Is Nothing Then Exit Sub Application.Goto Worksheets("人件費").Range("A1") Worksheets("人件費").Cells(Rows.Count, "A").End(xlUp).Offset(1).Value = Target.Offset(, -5).Value cancel = True End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, cancel As Boolean) If Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub Application.Goto Worksheets("外注費").Range("A1") Worksheets("外注費").Cells(Rows.Count, "A").End(xlUp).Offset(1).Value = Target.Offset(, -5).Value cancel = True End Sub 上の指令はFの列をダブルクリックすると人件費のシートが開いてAある値を人件費の新しいセルのAに代入する指令ですが それをG列ダブルクリックで外注費シートに同じようにやろうと思いましたが出来ません。 たぶん根本的に書き方が間違っているのかと思われますが、ご指導のほどお願いします。

  • どこが間違ってますか? (エクセルVBAです)

    質問をご覧くださりありがとうございます。 どなたか助けていただけないでしょうか。 以下のコードの場合、B2セルをダブルクリックすればシート(1)が開くと思っていたのですが、B2以外のセルをダブルクリックしてもシート(1)が開いてしまいます。 どこが悪いのでしょうか。 詳しい方がいらっしゃいましたら、どうか教えてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean) If Target = Range("B2") Then cancel = True Worksheets("シート(1)").Activate End If End Sub どうか、宜しくお願いいたします。

  • Excel2000 VBA ダブルクリックで別シートの同番地セルへ移動

    sheet1とsheet2 の2つのシートがあります。 sheet1のA1セルをダブルクリックすると、sheet2のA1セルへ移動させたいのですが、 下記のコードで実行すると、 'Range'メソッドは失敗しました:'_WorkSeet'オブジェクト のエラーメッセージが表示されました。 どうぞアドバイスお願い致します。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)   Sheets("sheet2").Select   Range("Target.Address").Select End Sub

  • エクセルVBA ダブルクリックした左隣の値を返す方法

    いつもお世話になっております。 あるワークシートにおいて、 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) If ActiveCell.Column = 7 Then Target.Value = "希望" End If End Sub というマクロを記述することができました。 今度は、 G列のどこかのセルをダブルクリックすると、 同じ行のE列の値が、 ダブルクリックしたセルに入るようにしたいのです。 どのような記述をすればよいのか ご教示ください。

  • Private Sub Worksheet_BeforeDoubleC

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 4 Then Target.Value = Date End If If Target.Column = 5 Then Target.Value = Date End If End Sub これは、他の方の回答で4列と5列のどこかをダブルクリックすると日付が入力されました。 しかし、シートの保護を入れるとダブルクリックしても入力されません。 それで、例えば、B3セルとかC3セルとかの特定のセルをダブルクリックすると日付が入力されるようにできませんか?宜しくお願いします。

  • 選択セルに計算結果を表示

    エクセルVBAで選択セルに計算結果を表示したいのですが、教えてください。 A列には、ID B・C列には値が入力されています。 下記の構文ですと、行のどこをダブルクリックしても、D列に合計が表示されます。 D列以降のどの行をダブルクリックしても、アクティブなセルに合計を表示したいです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cells(Target.Row, 4) = Cells(Target.Row, 2) + Cells(Target.Row, 3) End Sub

  • VBAの書き方

    VBA初心者です。 EXCEL2007を使っています。 いま、下記のような書き方で、 1.セル(A1)をダブルクリックしたら「Z:\管理\01.xlsx」を開く 2.セル(A2)をダブルクリックしたら「Z:\管理\02.xlsx」を開く ・ ・ ・ n.セル(An)をダブルクリックしたら「「Z:\管理\0n.xlsx」を開く という動きをしたいと考えています。 わからないまま、WEBサイトで見つけた書き方を下記のように書き換えて試してみました。 一つではうまくいきますが、二つ目の設定をすると・・・ 添付画像のように、「コンパイルエラー 名前が適切ではありません」と出てしまいます。 WEBで調べた限りでは、 「Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)」 の部分が同じ名前がエラーの原因のように思えますが、どうしてよいかわかりません。 よろしくお願いします。 -------------------------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address <> "$A$1" Then Exit Sub Cancel = True ChDir "Z:\管理\" Workbooks.Open Filename:="Z:\管理\01.xlsx" End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address <> "$A$2" Then Exit Sub Cancel = True ChDir "Z:\管理\" Workbooks.Open Filename:="Z:\管理\02.xlsx" End Sub

  • XL:BeforeDoubleClickが動かない

    Excel VBAでダブルクリックしたときに処理をしたいのですがうまくいきません。 対象のワークシートに次のコードを記述して、そのワークシート内のセルをダブルクリックしていますが無反応です。何のコードも実行されません。なぜでしょうか。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True MsgBox "Range= " & Target End Sub Windows 7 Pro 64bit, Excel 2007 別のブックでも試しましたが同じく無反応です。。。 シートのコードの一番上に Application.EnableEvents = True とも書いてみましたがダメです。

  • 特定の列でダブルクリックのイベントを発生させたい

    ExcelのA列に写真を挿入し、その他の列に文字を入力するようなシートを作成しており、 (1)A列では写真を挿入 (2)その他の列ではExcel本来の仕様通り(ダブルクリックした付近から文字列を編集できる)に動作する 上記のようなマクロを検討しております。 サンプルとして以下のようなマクロを作成しました。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) Cancel = True '===============A列以外は処理を行わない If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub '===============写真挿入処理  ~略~ End Sub しかしながら、ダブルクリックをした段階でBeforeDoubleClickが呼ばれ、 何もせず終了するため(2)でやりたいことが実現できないでおります。 BeforeDoubleClickとは別のものを利用できるのか、 実直に(2)の処理をマクロで記載するしかないのかご教授いただければと思います。

専門家に質問してみよう