アプリ版:「スタンプのみでお礼する」機能のリリースについて

一つのキーだけで、連番が入力できる方法を質問しましたところ、以下の方法で教えてくださいました。しかし、マウスのダブルクリックは、セルの編集状態にする、のコマンドとして反応しますので、該当の入力とはなりません。(私のマクロの設定が悪いのかも)
とにかく、それをハッキリさせるためにも、あらためて、マウスのダブルクリックでなく、何かのキーで、この動作をする命令はないでしょうか?
よろしくお願いします。
以下、前回のご回答です。

シート名タブを右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける

private sub Worksheet_BeforeDoubleClick(byval Target as excel.range, Cancel as boolean)
if target.column <> 1 then exit sub ’仮にA列
target = application.max(range("A:A")) + 1
cancel = true
end sub

ファイルメニューから終了してエクセルに戻る
A列のセルを希望の順にWクリックする。

A 回答 (4件)

>しかし、マウスのダブルクリックは、セルの編集状態にする、のコマンドとして反応しますので、該当の入力とはなりません



再掲:
>A列のセルを希望の順にWクリックする。

勝手にご自分の(不明の)列でWクリックしている状況が想定されます
このマクロでは、回答した通りA列をWクリックします。







>マウスのダブルクリックでなく、何かのキーで、この動作をする命令はないでしょうか?

繰り返しになりますが、具体的に「どこの列で」それをしたいのか相変わらずナイショのままなので、それが原因で教わったやり方も上手くいかない可能性が続いています。


手順:
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける

sub macro1()
activecell = application.max(activecell.entirecolumn) + 1
end sub

ファイルメニューから終了してエクセルに戻る
ツールメニューのマクロのマクロを開始する
macro1を選び、ダイアログの「オプション」をクリックする
現れたダイアログの
Ctrl +  
の右欄に希望のキー、たとえば小文字の i を打ち込んでOKし、さらにダイアログを閉じる。

好きな列のセルを選び、Ctrlキーを押しながらiのキーを押す。
「キーを押すごとに、連番が打てますか?」の回答画像1
    • good
    • 0

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と順番に最大値までセルに入力されます。最大の次はもちろん初期値に戻ります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/10/29 18:34

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を変えれば望みの数字から始められます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/10/29 18:38

こんばんは!



>マウスのダブルクリックでなく、何かのキーで、この動作をする命令はないでしょうか?

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

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

お礼日時:2014/10/29 18:38

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