WEBページでVBAを使う方法とは?

このQ&Aのポイント
  • WEBページでVBAを使用する方法について知りたいです。
  • 新規にブックを立ち上げて、アクティブXコントロールのコマンドボタンを配置するとIEのブラウザで開かれますが、押しても反応しません。
  • エクセルで作成したデータベースをWEBにアップするために、VBAを使用する方法を教えてください。
回答を見る
  • ベストアンサー

WEBページでVBAを使う事

新規にブックを立ち上げて、 アクティブXコントロールのコマンドボタンを置いて、 Private Sub CommandButton1_Click() MsgBox "test" End Sub として、 ファイル名:Book1.htm ファイルの種類:webページ にして、一度ファイルを閉じて、Book1.htmをダブルクリックして開くと IEのブラウザで開かれコマンドボタンが表示されますが押してもmsgboxは表示されません。 WEBページでVBAを使う事は無理なのでしょうか? VBSやjavaスクリプトに書き換えなくてはいけないですか? エクセルで作ったデータベースをそのままWEBにアップしたいのでこのような事が知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

ちなみにhtm形式でもhtml形式でも、ファイヤフォックスでも表示は出来ます。 さらにちなみに、EXCEL2011でもVBAはちゃんと(一部制限はありますが)動きます。 そんなのは別にどちらでもいいのですが、勘違いはやはりあるようです。 > WEBページでVBAを使う事は無理なのでしょうか? WEBページ自体は「プログラム等を動かす機能」はありませんよ。 WEBページを視覚的に表示しているブラウザソフトがプログラムを呼び出して 必要に応じて動かしている、と言うのがわかりやすい表現でしょうか。 VBAに対応している「ブラウザ」と言うのは(私は)聞いたことが無いですね。 私が知らないだけかもしれませんが・・^^; どちらにしても、エクセルだけで動かせる程度のデータベースなら、 クラウドサービスなどでの共有の方が早いんじゃないかなぁ、と思いますが・・

BQJAAQYV
質問者

お礼

やはり私の使い方は間違ってるようですね。

その他の回答 (2)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

エクセルでhtml形式で保存しても、単に表示されている画面そのままをhtml形式に変換して保存しているだけです。 計算式とか書式設定とかVBAのコードとかは保存されません。 html形式で保存するとき、 「Webページと互換性のない機能が含まれている可能性があります。この形式でブックを保存しますか?」 とメッセージが出ていませんでしたか? これはそういう意味です。 ちなみに、html形式で保存すればsafariでも開けますので。

BQJAAQYV
質問者

お礼

そのメッセージ出たような気がします。

  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.1

基本的に大きな勘違いをしています。 VBが動くのはマイクロソフトのWindows環境のみと考えておきましょう。 Webの世界はHTMLが標準です。 マイクロソフトは差別化をはかって営利を独占したいのだからVBは論外なわけです。 >IEのブラウザで開かれコマンドボタンが表示されますが メチャクチャなことをしていてよく表示されたなというのが正直な感想です。 IEだから開けたのかもしれません。safariではとても無理でしょう。 HTML+CSS+JAVAScriptがWeb標準。ともかくHTMLを知らないことにはお話になりません。 Webページを作りたいのならこれらの勉強か、ホームページビルダーのようなソフトを買いましょう。 エクセルデータをWebにアップしたいのならZIPで固めてアップローダに置くとか、 pdfにしておけばweb上からもエクセルのデータベースを閲覧できます。

BQJAAQYV
質問者

お礼

私は勘違いをしていたようですね。そしてメチャクチャだったのですかw VBAはoffice内でしか動かせないのですか。 HTML・CSS・JAVAScriptを学んでいきたいと思います。

関連するQ&A

  • エクセルVBAでフォームのボタンとコントロールツールボックスのコマンドボタン

    エクセルVBAでフォームのボタンとコントロールツールボックスのコマンドボタンについて教えてください。 実はこれまでフォームしか使ったことがないのですが、フォームのボタンですと、下記のように一つのプロシージャを多数のボタンから呼び出し、呼び出したボタンにより異なった指示が出来ます。 Sub test() x = Application.Caller Select Case x Case "ボタン 1" MsgBox 1 Case "ボタン 2" MsgBox 2 Case "ボタン 3" MsgBox 3 Case "ボタン 4" MsgBox 4 End Select End Sub コントロールツールボックスは Private Sub CommandButton1_Click() MsgBox 1 End Sub Private Sub CommandButton2_Click() MsgBox 2 End Sub のようにコマンドボタンごとにひとつずつ書くしかないのでしょうか?

  • [Excel VBA]コマンドボタンの入力待ち方法

    コマンドボタンの入力を待つ方法についてご教示願います、 以下に詳しい状況と、具体的な質問を記載します。 【構成】 ・ユーザーフォーム上に5つのコマンドボタン(CommandButton1~CommandButton5) 【やりたいこと】 ・CommandButton1を押したらスタート ・1ラウンドにつき1回、CommandButton2~CommandButton5のいずれかのボタンが押せる。  そして、押されたボタンが何かを毎ラウンド判定する。  これを10ラウンドまで繰り返す。 (つまり、どのボタンが押されたかを10回判定する) なお、「ボタンが押されるまでは勝手にループしないこと」。 【コード】(UserFrom1に記載。質問用として、変数名は仮に日本語にしてあります) Public 押された As Long Dim 現在のラウンド As Long Dim 最終ラウンド As Long Private Sub ラウンド処理() 最終ラウンド = 10 For 現在のラウンド = 1 To 最終ラウンド ボタン判定 Next 現在のラウンド End Sub Private Sub ボタン判定() MsgBox 現在のラウンド & ":" & 押された End Sub Private Sub CommandButton1_Click() ラウンド処理 End Sub Private Sub CommandButton2_Click() 押された = 2 End Sub Private Sub CommandButton3_Click() 押された = 3 End Sub Private Sub CommandButton4_Click() 押された = 4 End Sub Private Sub CommandButton5_Click() 押された = 5 End Sub 【詰まっている点】 ボタンの入力待ちになるような文が入っていないため、 「1:0」「2:0」「3:0」…「10:0」とmsgboxが出るだけの状態です。 (当然ですが…) VBAの 【質問】 毎ラウンドごとにボタンの入力待ちのような状態を 「できるだけこの形を崩さずに」組み込むためには、どのような処理を加えればいいでしょうか。

  • EXCEL VBAのユーザーフォームに引数を渡す方法について

    すいません、EXCEL VBAのユーザーフォームに引数を渡す方法についてご質問があります。 シート上にコマンドボタンを2つ用意する。 コマンドボタン1を押すと変数mは1 コマンドボタン2を押すと変数mは2 としてユーザーフォームを呼び出す。 Public m As Integer Private Sub CommandButton1_Click()  m = 1  Call フォーム呼び出し(m) End Sub Private Sub CommandButton2_Click()  m = 2  Call フォーム呼び出し(m) End Sub Sub フォーム呼び出し(m As Integer)  UserForm1.Show End Sub 次にユーザフォームにコマンドボタンを1個置き、 ボタンを押したとき、mが1であれば「ボタン1」 mが2であれば「ボタン2」 とメッセージボックスを出し、ユーザーフォームを閉じる。 Private Sub CommandButton1_Click()   If m = 1 Then    MsgBox "ボタン2"   ElseIf m = 2 Then    MsgBox "ボタン2"   End If  Unload UserForm1 End Sub プロシージャ間の引数渡しは色々なテキストに載っているのですが ユーザーフォームに引数を渡す方法はどうも見つからず、 Private Sub CommandButton1_Click(m) としても、コンパイルエラーとなってしまいます。 よろしくご教示をお願いいたします。

  • 今発生しているイベントのコントロール名を取得

    エクセルです 例えば、シートにコマンドボタンを一つ設置して、クリックイベントで Private Sub CommandButton1_Click() MsgBox "CommandButton1が押されました" End Sub こうしたら、コマンドボタン1を押した時に、 "CommandButton1が押されました"が表示されますが、 CommandButton1の部分を変数みたいなのにすることはできますか? MsgBox Me.Name & "が押されました" だとシート名が取得されるし MsgBox Me.Control.Name & "が押されました" や MsgBox Me.ActionControl.Name & "が押されました" だとエラーになります。

  • Excel-VBA マルチページ内の指定ページ表示

    UserForm1に作成したマルチページ内の指定ページを直接表示する方法を教えて下さい。 ↓例えば1ページ目のCommandButton1をクリックしたら、 Private Sub CommandButton1_Click() ' ▽3ページ目を表示するコードを教えて下さい End Sub

  • エクセルVBAでマルチページの切り替え方法の件で

    エクセルVBAを使用して フォームを作成しているのですが マルチページを利用してpage1上にコマンドボタンを 配置しそのボタンをクリックすることでpage2に切り替わる 仕組みを作りたいと思っているのですが なかなかうまくいきません Private Sub CommandButton102_Click() userform1.page2.Show End Sub ↑のように考えてはみたのですが エクセルに間違ってるといわれてしまいました ご存知の方がいらっしゃいましたらよろしくお願いします

  • VBAのプロパティウィンドウについて

    VBAでプロパティウィンドウには ・Microsoft Excel Object ・フォーム ・標準モジュール があります。 ところで、下のプログラムですが、(1)の部分を標準モジュールに書き込み、フォームにあるコマンドボタンをクリックしたら、"test.xls"が表示されます。 しかし、(1)の部分をMicrosoft Excel Object のsheet1(sheet1)のコードに書き込み、プログラムを実行させると、フォームのコマンドボタンをクリックしても"test.xls"は表示されません。 これはなぜですか? (1)の部分のコマンドボタン1はsheet1に存在します。 (1)----------------------------------- Private file_name as string Private Sub CommandButton1_Click()   file_name="test.xls" UserForm1.Show End Sub (1)----------------------------------- フォーム Sub CommandButton1_Click() MsgBox file_name End Sub

  • VBAでマルチページの表示

    エクセル2002使用です。 ユーザーフォーム(オブジェクト名:UserForm1)に、マルチページ(オブジェクト名:page1)を配置してフォームを作成しました。 Sheet1にコマンドボタンを貼り付け、コマンドボタンをクリックして、標準モジュールを呼び出し、マルチページを標準モジュールから呼び出せるようにしたいのですがうまくいきません。 ’Sheet1 Private Sub CommandButton1_Click() Call フォーム表示 End Sub ’標準モジュール Sub フォーム表示() UserForm1.Show ’?ここのコードをいろいろ試したのですがわかりません。 End Sub この他 UserForm1.ShowPages "page1" とか 変数を入れてみたりしたのですが、うまくいきません。 すいませんが、よろしくお願いします。

  • VBA コマンドボタン 頭に0がでない

    各ボタンに以下を入れる Private Sub CommandButton1_Click() Selection.Value = Selection.Value & "1" End Sub Private Sub CommandButton2_Click() Selection.Value = Selection.Value & "2" End Sub . . Private Sub CommandButton10_Click() Selection.Value = Selection.Value & "0" End Sub Private Sub CommandButton11_Click() Selection.Value = Selection.Value & "." End Sub 0.1と入力しても0.1が表示できなく、1となってしまいます。 また.1と入力しても0.1でなく、1になってしまいます。 どうすれば良いでしょうか?

  • [Q:VBA] 現在のオブジェクトの参照(JavaScriptのthisキーワードに相当するもの)

    こんにちは。 Excel VBAで現在のオブジェクトの参照をすることはできますでしょうか?(JavaScriptのthisキーワードに相当するものはあるのでしょうか?) 下記のようなことをしたいのですが(コード自体に意味はありません。検証用です)。 よろしくお願い致します。 -- Private Sub CommandButton1_Click() キャプション = CommandButton1.Caption MsgBox(キャプション) End Sub Private Sub CommandButton2_Click() キャプション = CommandButton2.Caption MsgBox(キャプション) End Sub ・・・×数十個 ↓↓↓ Private Sub CommandButton1_Click() funcCaption End Sub Private Sub CommandButton2_Click() funcCaption End Sub ・・・×数十個 Sub funcCaption() キャプション = this.Caption MsgBox(キャプション) End Sub

専門家に質問してみよう