
現在、エクセルのVBAのフォーム上のコマンドボタンから、URLをブラウザで起動させたいと思っているのですが、うまくいきません。
インターネット上で以下のプログラムが紹介されていたので試したのですが hwnd の所でエラーとなってしまいます。
Option Explicit
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 cmdGO_Click()
ShellExecute Me.hwnd, "Open", "http://www.goo.ne.jp/", _
vbNullString, App.Path, 1
End Sub
また、エクセルのハイパーリンクを使って、あるセル上に事前に設定しておき、コマンドボタンをクリックした時にそのセルのハイパーリンクを起動させることにしました。しかしブラウザは起動するのですが、ブラウザを閉じるとエクセルの画面が最小化されています。(最大化しようとして右クリックしてもなにも出てきません)同じエクセルファイルをダブルクリックするとやっとエクセルが画面表示されます。
ブラウザを閉じた時に画面上にエクセル画面を表示させたいのですがどのようにすれば良いのでしょう。分かる方が見えましたら宜しくお願いします。
このプログラムは以下のように作成しました
Private Sub CommandButton3_Click()
Worksheets("データ").Select
Range("J18").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Application.WindowState = xlNormal
End Sub
ソフトは
EXCEL2000です
No.1ベストアンサー
- 回答日時:
>ShellExecute Me.hwnd, "Open", "
http://www.goo.ne.jp/", _>vbNullString, App.Path, 1
これって多分VBのサンプルを見たんですよね?
多分Excelで動作させるのでしたら、下記のようにすれば
大丈夫だと思います。
ShellExecute vbNull, "Open", "http://www.goo.ne.jp/", _
vbNullString, vbNullString, 1
この回答への補足
Y(>_<、)Y ヒェェ! お早いご回答ありがとうございます。
早速、試させていただきました。がが・・
初心者なものでお手数おかけしますが
ShellExecuteでコンパイルエラー SubまたはFunctionが定義されていませんとなります。
Public ShellExecute As Objectを追加してみたのですがダメです。多分見当違いなことをしているのだと思います。
申しわけありませんが、再度ご教授お願いいたします。
すみません。できました。
補足で書き込みしたときは、以下のプログラムを消していました。
これ以降を書き直したところ上手くいきました。ありがとうございました。
また、なにかありましたら宜しくお願いいたします。では
Option Explicit
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
No.2
- 回答日時:
Option Explicit
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
がShellExecute関数を宣言しているわけですので、
Private を Publicに変えれば、コンパイルエラーはなくなると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DOSプロンプトとコマンドプロン...
-
VBScript 実行時エラーについて
-
Oracleの起動時に、マウントし...
-
Excel2013VBAでフリーソフト「...
-
outlook2013 アップグレード中 ...
-
バッチ処理について
-
Windows10の再起動はどれ位の周...
-
ORA-01013のエラーについて経験...
-
Oracleで流したSQLのログを取得...
-
datetime型のインポートについて
-
ORA-01843: 指定した月が無効で...
-
新規表領域の作成について
-
SQL*Plusで、コマンドの返答を...
-
xy平面上の点P(x,y)に対し,点Q(...
-
sysauxの読み方について
-
「ORA-00907: 右カッコがありま...
-
SQL実行結果取得
-
PL/SQLのコンパイルエラーにつ...
-
PL/SQL PLS-00103エラーについて
-
ACCESS:保存済みのインポート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DOSプロンプトとコマンドプロン...
-
Oracleの起動時に、マウントし...
-
VBScript 実行時エラーについて
-
oracleのサービスがずっと開始...
-
Excel2013VBAでフリーソフト「...
-
サーバの状態を確認する方法に...
-
outlook2013 アップグレード中 ...
-
Oracle10gの起動を止めたいので...
-
Tomcatについて。
-
Oracle_リスナーありませんって...
-
VBからExcelを起動しE...
-
EXCEL VBA UserFormで困ってい...
-
携帯サイトで地図をいれたい。
-
VBAでURLをブラウザで起動させたい
-
Windows10の再起動はどれ位の周...
-
windows audio サービスのとこ...
-
SQL*LOADER
-
バッチ処理について
-
Excel VBAでサーバのエクセルフ...
-
バッチファイルでフリーソフト...
おすすめ情報