下記のコードを記述しました。
最終行まで[F2〕→〔Enter]をループ
※やりたいことが不明だとは重々承知ですが、目的があり、
質問させていただいております。
その後にメッセージBOX or 他ボタンの呼び出しをしたいのですが、
メッセージボックス or Call ボタン名 を記述しても実行されません。
改善策が分かる方いましたら、ご教授いただければ幸いです。
宜しくお願い致します。
Sub ボタン1_Click()
Dim i As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Range("A2").Activate
SendKeys "{F2}"
SendKeys "{Enter}"
Next i
MsgBox "TEST"
End Sub
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは。
ふつう、
SendKeys "{F2}"
SendKeys "{Enter}"
それが、ワークシート上というのでしたら、F2 を押せば、セルへの入力状態になり、通常はマクロは命令待ち状態になってしまいます。したがって、行ったきりのマクロになります。
こういうスタイルは、外部オブジェクト(例えば、VBScript)からSendKeyを使わないと意味がなかったはずです。#1さんのご指摘は、正しいのですが、今回は、特例で、Return とセットとして扱うから抜けられるのだと思いました。
>やりたいことが不明だとは重々承知ですが、目的があり、
別に秘密にしなくても、この場合は、例えば、外部データをインポートした後に、データが不活性化して、文字でも数字でもない状態の時に、そのデータをExcelデータに落ち着かせるために行なう方法です。他には、IMEの変換を利用する方法なども出ているようです。
そうはいうものの、以前、そういう場合は、以下ようなマクロを使っていましたが、今は、いろんな状況が考えられますから、必ずしも正解とはいえなくなりました。
'1234 というように、プレフィックス付きの文字列 を、数値の1234に変える場合には、有効です。
Sub ボタン1_Click()
Dim rng As Range
Set rng = Range("A2", Cells(Rows.Count, 1).End(xlUp))
With rng
.Value = .Value
End With
End Sub
区切り位置オブジェクトを使ってデータを変更させるとか、手段はいくつかあります。
'//ふだん、このようなマクロは書きません。
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Sub ボタン1_Click()
Dim i As Long
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
Cells(i, 1).Activate
Application.SendKeys "{F2}{Enter}", True
Sleep 200 '*
DoEvents 'これを入れないと戻れない。
Next i
Application.ScreenUpdating = True
MsgBox "TEST"
End Sub
* この部分は、抜いても大丈夫か、試験してください。確実生を高めるために入れているだけです。あまりSleep は意味がありません。
最初の、.Value = .Value を、手動式で行った場合。
Application.SendKeys "{F2}{F9}{Enter}", True
となります。
一度、試してみてください。
No.3
- 回答日時:
以下のようにしてください。
------------------------------------
Sub ボタン1_Click()
Dim i As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Range("A2").Activate
SendKeys "{F2}"
SendKeys "{Enter}"
Next i
DoEvents
MsgBox "TEST"
End Sub
-----------------------
MsgBox "TEST"の前の行にDoEventsを追加します。
No.2
- 回答日時:
何をやっているか全く判らないのですが、「SendKeys "{Enter}"」と「Next i」の間に「DoEvents」を入れてみたらいかがですか?
ちなみにA列のデータは内容とは関係なくループの回数にしか使われていないようですがそれで良いのですか?
No.1
- 回答日時:
SendKeys "{F2}"
この F2を 閉じるコマンドが無いから
ループ抜けても コードは F2表示で止まってる。
手動で F2閉じたら、msgbox に進むけど・・・
F2以外で やったら??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
ロボットの住む世界で流行ってる罰ゲームとは?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
VBAでの SendKeysの変数指定方法
Excel(エクセル)
-
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
エクセルVBAでF2(ファンクション2)と同じ処理をしたい
Excel(エクセル)
-
-
4
【sendkeysメソッドが動かずに苦慮しております】
Visual Basic(VBA)
-
5
ExcelマクロのSendkeysで処理途中に次のキーが送られる
Excel(エクセル)
-
6
ExcelVBAでスペースキー操作したい
Excel(エクセル)
-
7
エクセル VBA 正しいマクロを教えてください
Excel(エクセル)
-
8
エクセルVBAで SendKeys {TAB}""
Excel(エクセル)
-
9
vbaから他のアプリを終了
Visual Basic(VBA)
-
10
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
11
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
12
クリップボードの内容を変数に取り込みたい(EXCEL VBA)
Visual Basic(VBA)
-
13
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
16
別のシートから値を取得するとき
Visual Basic(VBA)
-
17
EXCELのVBAでRange(A1:C4")を変数にする方法を教え"
Visual Basic(VBA)
-
18
Excel VBAで他アプリへのテキストデータ貼り付け
Excel(エクセル)
-
19
ExcelVBAでセルを編集状態にする方法
Excel(エクセル)
-
20
エラーになってないのにVBAが中断される
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロボタンが編集...
-
別シートのマクロを実行する方法
-
Application.Runエラー(1004)
-
マクロ 戻るボタンを押したらシ...
-
access2010 コマンドまたはアク...
-
エクセル VBA SendKeys ループ...
-
InputBox内の表示について
-
エクセルVBAで、ボタンの文字を...
-
「Access」のフォームを...
-
EXCEL2010でxltmにxlsmは必要?
-
プロシージャが大きすぎます!
-
Access終了時にマクロまたはVBA...
-
アクセスのマクロについて
-
別シートのトグルボタンを指定...
-
Excel VBA ボタンのマクロにつ...
-
エクセルのマクロ名一覧
-
マクロとモジュールの違いを教...
-
マクロで図形を一度に消去したい
-
AccessでExcelファイルを印刷
-
Excel起動時に画面表示縮小を自...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Application.Runエラー(1004)
-
別シートのマクロを実行する方法
-
Access終了時にマクロまたはVBA...
-
エクセルのマクロボタンが編集...
-
access2010 コマンドまたはアク...
-
InputBox内の表示について
-
シート保護を掛けたまま並べ替...
-
エクセルVBAで、ボタンの文字を...
-
マクロ 戻るボタンを押したらシ...
-
ExcelVBAで右クリックメニュー...
-
特定のシートだけ印刷はマクロ...
-
アクセスのマクロについて
-
マクロとモジュールの違いを教...
-
AccessでExcelファイルを印刷
-
エクセル VBA SendKeys ループ...
-
private sub にしたらマクロが...
-
別シートのトグルボタンを指定...
-
エクセルのマクロ
-
Workbook_Openを起動時以外に呼...
-
「Access」のフォームを...
おすすめ情報