• 締切済み

IMEの単語登録について

テキストボックスに文字を入力して、確定と同時にIMEの単語登録辞書を表示せずに、辞書に登録するプログラムを作っているのですが、うまく出来ずにいます。途中のプログラムを載せますので間違いがありましたら教えていただけないでしょうか? Private Declare Function GetKeyboardLayout_ Lib "user32" (ByVal idThread As Long) As Long_ Private Declare Function ImmRegisterWord_ Lib "Imm32.dll" Alias "ImmRegisterWordA" _ (ByVal hKL As Long, ByVal lpszReding As String,_ ByVal dwStyle As Long, ByVal lpszRegisterAs_ String) As Long Private Sub Label6_Click() Dim hKL As Long Dim lpszReading As String '単語の読み Dim lpszRegister As String '単語の語句 Dim dwStyle As Long '単語の品詞   hKL = GetKeyboardLayout() lpszReading = Text1.Text 'Text1に入力された            単語をlpszReadingに格納 lpszRegister = Text1.Text 'Text1に入力された            単語をlpszRegisuterに格納 ImmRegisterWord hKL, lpszReading, dwStyle,       lpszRegister '読み・語句をIME辞書に登録 End Sub です。よろしくお願いします。

みんなの回答

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.9

ゼロでしたか。 エラーというわけではないのですが、 lngCnt = ImmGetRegisterWordStyle(hkl, 0, udtStyle(0)) で取得できる「lngCnt」は「使用可能な品詞の数」をあらわしております。 つまりユーザ辞書に登録する方法がこれまでやってきた方法では無理なような気がします。 手作業ではユーザ辞書の登録は可能なのですよね? そのときに「品詞」は選択可能ですよね? (品詞とは名詞とかの言葉の種類を表す言葉です) その品詞を数値化した値を取得する前に「いくつ品詞が登録されているか」を調べてそれが「ゼロ」だといっているので。。。 ちなみに私のIME2002では30近くの品詞が出てきます。 IME2003とのことなので何か違いがあるのでしょうか。。。 大変申し訳ないですが、当方にはIME2003の実行環境がないためそれを確認することができません。 ここまできて解決できないのはふに落ちない部分もあるのですが。。。 ネットで少し調べて見ます。 良い回答が見つかればよいのですが。。。 ちなみに ReDim udtStyle(1 To lngCnt) でのエラーは lngCntがゼロであるため ReDim udtStyle(1 To 0) となり「1から0までを確保せよ」というのは矛盾があるのでエラーとなっているわけです。。。

tyakosan
質問者

補足

手作業でのユーザ辞書の登録は可能です。品詞も30個以上出ていて、ちゃんと選択も出来、登録されます。細かい部分まで色々とありがとうございます。私なりにも調べてみようと思います。

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.8

lngCnt = ImmGetRegisterWordStyle(hkl, 0, udtStyle(0)) の行の後に Msgbox lngCnt を挿入して実行してみてください。

tyakosan
質問者

補足

実行してみたところ、「0」と出ました。エラーということでしょうか?よろしくお願いします。

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.7

自己のサイトへのリンクが許されないということでサンプルが削除されてしまいましたので、ソースコードを記入します。 今までの原因は品詞の値が不適当だったことが原因だと思います。 以下のサンプルでは品詞の値を取得し、それを使用するようになっています。 【前提】 Form1の中にTextBoxを2つ(「Text1」「txtHinsi」)とListBox「List1」を設置してください。 【使い方】 1.Text1に登録文字を入れて「エンター」を押下 2.「エラー」と表示されるようならList1の中から適当に選択して再度Text1で「エンター」を押下 3.「成功」と表示されたならユーザ辞書で確認 【Form内コード】 Option Explicit Private Declare Function GetKeyboardLayout Lib "user32" (ByVal idThread As Long) As Long Private Declare Function ImmRegisterWord Lib "imm32.dll" Alias "ImmRegisterWordA" _ (ByVal hkl As Long, _ ByVal lpszReding As String, _ ByVal dwStyle As Long, _ ByVal lpszRegister As String) As Long Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" ( _ ByVal dwFlag As Long, lpSource As Any, ByVal dwMessageId As Long, _ ByVal dwLanguageId As Long, ByVal lpBuffer As String, _ ByVal nSize As Long, Arguments As Long) As Long Private Declare Function GetLastError Lib "kernel32" () As Long Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000 Private Const FORMAT_MESSAGE_IGNORE_INSERTS = &H200 Private Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100 Private Declare Function ImmGetRegisterWordStyle Lib "imm32.dll" Alias "ImmGetRegisterWordStyleA" ( _ ByVal hkl As Long, _ ByVal nItem As Long, _ lpStyleBuf As STYLEBUF) As Long Private Type STYLEBUF dwStyle As Long szDescription(31) As Byte End Type Private Sub Form_Load() Dim hkl As Long Dim lngCnt As Long Dim lngR As Long Dim udtStyle() As STYLEBUF Dim i As Long ReDim udtStyle(0) hkl = GetKeyboardLayout(0) lngCnt = ImmGetRegisterWordStyle(hkl, 0, udtStyle(0)) ReDim udtStyle(1 To lngCnt) List1.Clear lngR = ImmGetRegisterWordStyle(hkl, lngCnt, udtStyle(1)) For i = 1 To lngCnt List1.AddItem "&h" & Hex(udtStyle(i).dwStyle) & "," & StrConv(udtStyle(i).szDescription, vbUnicode) Next txtHinsi.Text = "&h" & Hex(udtStyle(1).dwStyle) End Sub Private Sub List1_Click() txtHinsi.Text = Left(List1.Text, 10) End Sub Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Dim hkl As Long Dim lpszReading As String Dim lpszRegister As String Dim dwStyle As Long Dim lngR As Long Dim lngR2 As Long Dim strBuff As String If KeyCode = vbKeyReturn Then hkl = GetKeyboardLayout(0) lpszReading = Text1.Text lpszRegister = Text1.Text dwStyle = CLng(txtHinsi.Text) lngR = ImmRegisterWord(hkl, lpszReading, dwStyle, lpszRegister) If lngR = 0 Then MsgBox "エラー" Else MsgBox "成功" End If End If End Sub

tyakosan
質問者

補足

ソースコードありがとうございます。実行してみたところ、 ReDim udtStyle(1 To lngCnt) の部分で「インデックスが有効範囲にありません」と出て変更してみたりしたのですが、リストボックスに品詞が表示されなかったりと、どの部分を変更すれば実行できるのでしょうか?何度もすみません。よろしくお願いします。

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.6

#1です。 1つめは「GetKeyboardLayout」の戻り値ということで「hKL」の値 2つめは「ImmRegisterWord」の戻り値ということで以下のようにして調べてみてください。 「ImmRegisterWord hKL, lpszReading, dwStyle, lpszRegister」 のところを 「Msgbox ImmRegisterWord(hKL, lpszReading, dwStyle, lpszRegister)」 と変更して実行し、表示された値 上記で調べた値のことです。

tyakosan
質問者

補足

ありがとうございます。戻り値は「0」と出ました。

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.5

#1です。 APIを2つ使用していますが、それらの戻り値を教えてもらえませんか?

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.4

#1です。 WindowsのバージョンとIMEのバージョンを教えてもらえませんか? ちなみに私は WindowsXP SP1 IME 2002 ver8.1 です。

tyakosan
質問者

補足

WindowsXP SP1 IME 2003 ver9.0です。 すみません。戻り値とはどれのことなのでしょうか?

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.3

#1です。 できませんでしたか。。。 何ででしょうか???? 単語は「ユーザー辞書」に登録されます。 「プログラムを文字確定のEnterキーを押したときに実行されるように」 これは思われているとおりで可能です。 使用するイベントは「KeyDown」あたりでしょうか。

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.2

#1です。 あと、これは転記時の間違いだと思うのですが、 2行目(Lib "user32" (ByVal idThread As Long) As Long)の最後にある「_(アンダーバー)」と 6行目(ByVal dwStyle As Long, ByVal lpszRegisterAs)の最後の「As」の手前にスペースが無い の2点も修正しております。 (念のため。。。)

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.1

私の場合は普通に登録されましたよ? ソースの中で変えた点としては hKL = GetKeyboardLayout() を hKL = GetKeyboardLayout(0) とし、 dwStyle=1 を追加しました。

tyakosan
質問者

補足

ありがとうございます。やってみましたが、うまくできなくて。登録した単語はユーザー辞書というところに登録されると思っていたのですが、違うのでしょうか?あと、このプログラムを文字確定のEnterキーを押したときに実行されるように、 If keycode=vbkeyReturn Then 載せたプログラム End If としたのですが、これはできないのでしょうか?

関連するQ&A

  • VBAでSetTextColorがうまくいかない

    EXCELのVBAでユーザーフォームを使ったグラフィック表示のプログラムを 作っているのですが、SetTextColorでテキスト色の設定をしようと してもうまくいきません。何故か設定しようとする色の値が無視されて 「1304008」が設定されてしまいます。(GetTextColorで確認) そしてそれ以降何を設定してもこの状態のままです。 何か考えられることがありますでしょうか。 下にそのプログラムを示します。 ちなみにSetBKColorやAngleArcなど他のグラフィック命令は問題なく 動いていてSetTextColorだけがうまくいってない状態です。 '------------------------------------------------- ' ユーザーフォーム用プログラム '------------------------------------------------- Private Declare Function GetActiveWindow Lib "user32" () As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _ ByVal hwndParent As Long, _ ByVal hwndChildAfter As Long, _ ByVal lpszClass As String, _ ByVal lpszWindow As String) As Long Private Declare Function GetDC Lib "user32" ( _ ByVal hWnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" ( _ ByVal hWnd As Long, _ ByVal hdc As Long) As Long Private Declare Function SetTextColor Lib "gdi32" _ (ByVal hdc As Long, crColor As Long) As Long Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" _ (ByVal hdc&, ByVal x&, _ ByVal y&, ByVal lpString$, ByVal nCount&) As Long Dim hWnd As Long Dim hdc As Long Public Sub UserForm_Activate() DoEvents hWnd = FindWindowEx(GetActiveWindow, 0, "F3 Server 60000000", "") hdc = GetDC(hWnd) ret = SetTextColor(hdc, RGB(255, 0, 0)) ret = TextOut(hdc, 0, 0, "abc", 3) Call ReleaseDC(hWnd, hdc) End Sub '-------------------------------------------------

  • 64ビットエクセルでのAPI宣言/PtrSafe

    エクセルのInputboxで、入力された文字列を自動的にアスタリスクで隠すようにする方法を探し http://okwave.jp/qa/q2371878.html の回答No1のコードがまさに最適なコードで、これまで非常に助かっていました。 ところが、64bitのエクセルでは動かないことがわかりました。 表示されたエラーメッセージの言葉から調べて、PtrSafeという言葉を入れなければならないようなのでAPI宣言を以下のようにしてみました。 #If VBA7 And Win64 Then '64ビット版 Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _ ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _ ByVal dwThreadId As Long) As Long Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long #Else '32ビット版 Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _ ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _ ByVal dwThreadId As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long #End If ところが、回答No1のコードで Sub Report_Open() を実行すると Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, _ Optional YPos, Optional HelpFile, Optional Context) As String のところがハイライトされてエラーになります。 どう直せば良いのでしょうか? 全文のコードを乗せると字数制限に引っかかりますので、申し訳ありませんが宣言以外の部分は http://okwave.jp/qa/q2371878.html の回答No1のコードを見てくださいますようお願いします。

  • APIを使う時は参照設定は不要?

    例えば Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Sub test() Dim Handle As Long Handle = FindWindow("IEFrame", vbNullString) Debug.Print Handle End Sub と言うコードでウィンドウハンドルを取得する場合、 参照設定のどこにもチェックを入れませんが、なぜ参照設定しなくても使えるのでしょうか? Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long が参照設定の代わりになるのですか?

  • WinAPIで電卓をクリック

    現在、WinAPIを勉強しており、練習としてVBAを用いて、電卓アプリのボタンをクリックしようとしています。 キーを送るのではなく、クリックで行いたいたいと 考えています。 ボタンのハンドルを取得するところまではできましたが、sendMessageでクリックできず、EditBoxに数字が 入りません。 どのようにすればよいのかご教授ください。 よろしくお願い致します。 環境: WinXP home、 Excel2002、Win付属アプリの電卓v5.1 ---作成したプログラム---- '標準モジュールの中身 Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As Long) As Long Private Const WM_LBUTTONDOWN = &H201 Private Const WM_LBUTTONUP = &H202 Sub Main() Dim lngWindWnd As Long 'ウィンドウハンドル Dim ret As Long Dim hCalc As Long 'アプリケーションタイトルより、ウィンドウハンドルを得ます lngWindWnd = FindWindow(vbNullString, "電卓") '8ボタンのハンドル(確実に取れていることを確認 hCalc = FindWindowEx(lngWindWnd, 0, "Button", "8") ret = SetForegroundWindow(lngWindWnd) ret = SendMessage(hCalc, WM_LBUTTONDOWN, 0, 0) End Sub

  • VB.netでパスワード変更

    下記のようなパスワードを変更するフォームをVB.netで作成したのですが、 実行すると、いつも異なるretValの値がかえってきて変更できません。 retValの値もよくわからない大きな数値がかえってくるのでどのようなエラーかも 判断つかず。 どこが間違っているかお分かりになる方いらっしゃいますでしょうか。 Public Class Form1 Private Declare Function NetUserChangePassword Lib "netapi32.dll" (ByVal Domain As String, ByVal User As String, ByVal OldPass As String, ByVal NewPass As String) As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim retVal As Long Dim sDomain As String Dim sUser As String Dim sOldPass As String Dim sNewPass As String sDomain = "xxxxxxx" ←ここはサーバのIPアドレス sUser = TextBox1.Text sOldPass = TextBox2.Text sNewPass = TextBox3.Text retVal = NetUserChangePassword(sDomain, sUser, sOldPass, sNewPass) MsgBox(retVal) End Sub End Class

  • 他のアプリケーションの hDC を取得したい

     APIの初歩的なことですみません 他のアプリケーションの hDC を取得して GetPixel() API等 を使用したいのですが どうもうまくいきません hDC や hWnd あたりがよくわからないのが 原因だと思いますが、分かる方教えてください  ソースは以下の様な感じです Private Declare Function FindWindowA Lib "user32" (ByVal cnm As String, ByVal cap As String) As Long Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long lhWnd = FindWindowA(vbNullString, "ExpApp") lColor = GetPixel(lhWnd, ix, iy)

  • Formを動かせるようにしたい

    お世話になります。 OS XP PRO  VB6(SP5)で開発しています。 ディスプレイのサイズによりFormを動かせたり固定させたりしたいのですが、 規定値は固定にしたいのでFormプロパティのMoveableはFalseにしてあります。 下記のようにプログラミングしたのですが固定されたままです。 Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Private Declare Function GetSystemMenu Lib "user32" (ByVal _ hwnd As Long _ , ByVal bRevert As Long) As Long Private Declare Function RemoveMenu Lib "user32" ( _ ByVal hMenu As Long, ByVal nPosition As Long, _ ByVal wFlags As Long) As Long Private Declare Function DrawMenuBar Lib "user32" ( _ ByVal hwnd As Long) As Long Private Const MF_BYCOMMAND = &H0 Private Const SC_MOVE = &HF010 Private Sub Form_Load() Dim kk As Long kk = GetSystemMenu(.hwnd, bb) Call RemoveMenu(kk, SC_MOVE, MF_BYCOMMAND) Call DrawMenuBar(.hwnd) End Sub アドバイス頂きたくよろしくお願いします。 以上です。

  • アクセスでテキストを開く

    アクセスでパスを指定して、特定のテキストファイルを開く方法を教えていただけますか? いかのモジュールを見つけたのですが、どこに、動かないか… フルパスを入れればよいか分かりません。 どうぞ宜しくお願いします。 *********************************************************************************************** Private Declare Function ShellExecute Lib "SHELL32.DLL" Alias "ShellExecuteA" (ByVal hwnd As Long, _ ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Sub コマンド0_Click() Dim strFilePath As String Dim lngRet As Long Const SW_SHOWNORMAL = 1 strFilePath = Me.txt_Path 'WinAPIを使って関連付けられたアプリケーションを起動 lngRet = ShellExecute(Application.hWndAccessApp, "OPEN", _ strFilePath, vbNullString, CurDir(), SW_SHOWNORMAL) If lngRet <= 32 Then '返り値が 32 以下の場合はエラー MsgBox "ファイルを開けません!", vbOKOnly + vbExclamation End If End Sub ***********************************************************************************************

  • ExcelVBAでのkernel32(64bit)

    今までExcel2000のVBAから、以下のようなコードを使ってC++で作ったコマンドプロンプトで動くプログラムを動かすプログラムを作っていましたが、これを64bitのWindows7上で動いているExcel2010で使おうとしたらメッセージが出ました。いろいろ調べてみたところ、たぶんDeclareにPtrSafeを付ければ良いようなのですが、その際、他のコードはそのままで良いのでしょうか。特に、コード中のLongはそのままで良いのか気になるのですが...。ちなみに、下記コードの条件コンパイルはネットで調べて見よう見まねで付けたもので、Excel2000のときには付けていないものでした。ご存じの方がいらっしゃいましたらご教授ください。 '------------------------------------------------------------------------------ ' Win32 API関数・定数の宣言 '------------------------------------------------------------------------------ #If VBA7 And Win64 Then '64bit Declare PtrSafe Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, _   ByVal dwMilliseconds As Long) As Long Declare PtrSafe Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _   ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Declare PtrSafe Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long #Else '32bit Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, _   ByVal dwMilliseconds As Long) As Long Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _   ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long #End If Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF Private Const INFINITE As Long = &HFFFF '------------------------------------------------------------------------------ ' Run '------------------------------------------------------------------------------ Public Sub Run(ByVal project_name As String)   Dim program As String   Dim task_id As Long   Dim h_proc As Variant   program = mdlFunc.ProgramPath() & mdlFunc.ProgramOption(project_name) 'プログラム名   task_id = Shell(program, vbHide)   h_proc = OpenProcess(PROCESS_ALL_ACCESS, False, task_id)   If OpenProcess(PROCESS_ALL_ACCESS, False, task_id) <> vbNull Then     Call WaitForSingleObject(h_proc, INFINITE)     CloseHandle h_proc   End If End Sub

  • エクセルマクロでIE操作

    IEをエクセルマクロで操作する際に現在は下記のようなコードで立ち上げでいます。 この時、1回目の処理が終わり、もう一度同じボタンを押してコードを実行する際 あたにIEが立ち上がってしまいます。 同じURLのIEがすでに立ち上がっている際には そのIEを利用して処理を行うにはどのようにしたらよいでしょうか? ption Explicit 'Sleepを使用する場合のお約束 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Declare Function CloseWindow Lib "User32" (ByVal hwnd&) As Long Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Long) As Long Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Dim objIE As Object '変数を定義 Dim Obj As Object '変数を定義 Sub 間接() 'IEテストする。 Dim txtSelect As HTMLSelectElement Dim objTAG As Object 'IEの起動 Dim objIE As Object '変数を定義します。 Set objIE = New InternetExplorerMedium objIE.Visible = True '可視、Trueで見えるようにします。 '処理したいページを表示します。 objIE.Navigate "https://www.google.co.jp/?gws_rd=ssl" Sleep (1000) Do While objIE.ReadyState <> 4 'サイトが開かれるまで待つ(お約束) Do While objIE.Busy = True 'サイトが開かれるまで待つ(お約束) Loop Loop

専門家に質問してみよう