Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


14032 / 76733 ←次へ | 前へ→

【68201】Re:InputBoxメソッドのD.Box位置について
発言  ichinose  - 11/2/13(日) 23:28 -

引用なし
パスワード
   こんばんは。

私も仕事では、殆どSendkeysは使いません。


>InputBoxの前に実行しているのにActiveWindowではなく後に表示されるInputBoxの位置が対象になるというのはどういう理屈なのでしょうか?

Sendkeysが直ちに実行される命令ではないからでしょうねえ!!
試しに以下のコード、実行する前に想像してください。
セルA1は、結果どうなると思いますか?

あまがえるさんは、123が表示される という理屈ですよね?
実行してみてください。
Sub test1()
  Range("a1").Select
  SendKeys "abc{ENTER}"
  Range("a1").value = 123
End Sub

abcが入っていませんか?


APIが嫌なら、ユーザーフォームにRefeditコントロールを貼り付けて
自作してしまう方法は、どうでしょうか?

新規ブックにて試してみてください。


ユーザーフォームを一つ作成してください(UserForm1)。

このUserForm1には、Refeditコントロールだけを配置してください(RefEdit1)。
詳細は、

www.excel-vba.net/excel-userform-016.html

この辺りを参考にしてください。


UserForm1のモジュールに

'=============================================================
Option Explicit
Public value As Variant
Private Sub RefEdit1_KeyDown(KeyCode As Integer, ByVal Shift As Integer)
  If KeyCode = 13 Then
    value = RefEdit1.value
    RefEdit1.Visible = False
    Me.Hide
  End If
End Sub
Private Sub UserForm_Activate()
  With Me
    .Left = 40000
    .Top = 40000
  End With
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  If CloseMode = 0 Then
    Cancel = True
  End If
End Sub


標準モジュールに

'==================================================================
Sub test()
  Dim add As String
  With UserForm1
    .Show
    add = .value
  End With
  Unload UserForm1
  On Error Resume Next
  With Application
    add = .ConvertFormula(add, xlR1C1, xlA1)
    .Goto .Range(add)
  End With
  On Error GoTo 0
End Sub

これでtestを実行してみてください。

セル範囲の指定が可能になります。指定したセル範囲は、破線で囲まれます。

エンターキーで確定され、指定範囲が選択されます。

リンク先にもありますが、RefEditには、バグがあります。
ここを参考にバグを避けて使ったつもりです。
www.h3.dion.ne.jp/~sakatsu/Excel_Tips08.htm#S7
Excel2002で簡単なテストでは作動しています。
2010で試してみてください。

3 hits

【68181】InputBoxメソッドのD.Box位置について あまがえる 11/2/10(木) 10:33 質問
【68184】Re:InputBoxメソッドのD.Box位置について Yuki 11/2/11(金) 11:06 発言
【68185】Re:InputBoxメソッドのD.Box位置について Yuki 11/2/11(金) 11:10 発言
【68187】Re:InputBoxメソッドのD.Box位置について あまがえる 11/2/11(金) 18:20 お礼
【68188】Re:InputBoxメソッドのD.Box位置について kanabun 11/2/11(金) 19:29 発言
【68192】Re:InputBoxメソッドのD.Box位置について あまがえる 11/2/12(土) 4:55 お礼
【68193】Re:InputBoxメソッドのD.Box位置について kanabun 11/2/12(土) 10:45 発言
【68194】Re:InputBoxメソッドのD.Box位置について とおりすがり 11/2/12(土) 10:47 回答
【68195】Re:InputBoxメソッドのD.Box位置について あまがえる 11/2/13(日) 8:40 お礼
【68196】Re:InputBoxメソッドのD.Box位置について UO3 11/2/13(日) 12:19 発言
【68197】Re:InputBoxメソッドのD.Box位置について grok 11/2/13(日) 14:49 発言
【68200】Re:InputBoxメソッドのD.Box位置について grok 11/2/13(日) 17:18 発言
【68201】Re:InputBoxメソッドのD.Box位置について ichinose 11/2/13(日) 23:28 発言
【68202】Re:InputBoxメソッドのD.Box位置について UO3 11/2/14(月) 9:16 発言
【68206】Re:InputBoxメソッドのD.Box位置について ichinose 11/2/14(月) 21:17 発言
【68207】Re:InputBoxメソッドのD.Box位置について grok 11/2/14(月) 22:10 発言
【68208】Re:InputBoxメソッドのD.Box位置について UO3 11/2/15(火) 0:46 発言
【68210】Re:InputBoxメソッドのD.Box位置について ichinose 11/2/15(火) 6:11 発言
【68211】Re:InputBoxメソッドのD.Box位置について UO3 11/2/15(火) 6:34 発言
【68212】Re:InputBoxメソッドのD.Box位置について よろずや 11/2/15(火) 6:48 発言
【68213】Re:InputBoxメソッドのD.Box位置について UO3 11/2/15(火) 9:27 発言
【68225】Re:InputBoxメソッドのD.Box位置について ichinose 11/2/15(火) 23:57 発言
【68249】Re:InputBoxメソッドのD.Box位置について あまがえる 11/2/17(木) 14:15 お礼

14032 / 76733 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free