• 締切済み

vba

エクセルのVBA(マクロ)について、 vbaのコードに、エクセルの関数(sum、leftなど)は、そのまま(書いて)使えるのでしょうか? それとも、その機能(動作)するようなコードを書く必要があるのでしょうか? よろしくお願いします。 エクセル2007以上

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

そのままじゃダメですね。 たとえば sub macro1() msgbox application.sum(range("A:A")) end sub みたいにして利用できます。 このようにエクセルの普段ワークシートに書くように、全く同じには使えません。上述サンプルのように、それなりに書き振りは決まっています。 具体的にどの関数が使えるかは、VBA画面で「オブジェクトブラウザ」を使い、WorksheetFunctionクラスの配下にある関数が利用できます。 また、この一覧をしっかり眺めてみると、たとえばleft関数とかはこの中には含まれていないことが分かります。 同じような用途で、VBA独自に関数が用意されているためです。 同じようにleft関数などをオブジェクトブラウザで調べ、?ボタンで関数のヘルプを開いて、具体的にどういう風に使うのか、使用例なども参考にしながら勉強します。

関連するQ&A

  • エクセルのマクロ、VBAって?

    お世話様です。 エクセルは関数(fx)で計算等は出来るのですが マクロ、VBAとなるとさっぱり判りません? マクロ、VBAとは何ですか? どのような時にマクロ、VBAを使用するのでしょうか? 参考URLがあれば教えてください。 以上、お願いします。

  • VBAについて

    よくわかっていないので、質問がおかしくてすいません。 VBAで作成したマクロ?をEXCELで動かそうとしています。 その際、EXCELのバージョンが異なったらそのマクロは動作しないのでしょうか?

  • エクセルVBAでタイマーコントロールは使えますか

    エクセルVBAでタイマーコントロールは使えますか。 エクセルVBAで、ある時刻になったらマクロを実行させたいと思っています。 無限ループの中にTIME関数で時刻を呼び出し、それをIF文で判定して、 一定時刻にマクロを実行させるものは作りましたが、CPU負荷が高く、24時間 連続で動作させることに不安を感じています。 この他に、VBのタイマーコントロールのような機能を持つオブジェクトや 便利機能等があったら教えていただけませんか。 (一応、VBで時刻管理をするプログラムを作ってそこからエクセルVBAを呼 び出す方法やタスクスケジューラでエクセルVBAを呼び出す方法、ATコマンド 等も考えていますが、可能ならエクセルVBAで閉じて処理をしたい)。 尚、私はWindowsMe+エクセル2000でVBAを作成しています。 実際にVBAを動かすのは、WinsowNT4.0サーバー+エクセル2000を予定してい ます。

  • SUM関数の中身(VBA)

    エクセルVBA初心者です。 SUM関数と全く同じものをVBAでつくるとどのような式(?)になるのでしょうか?

  • エクセルVBA

    エクセルVBAのコードについて質問です。エクセル初心者です。 Windows10で32bit版のエクセル2010を使っています。 1.エクセルのマクロは32bit版でも64bit版にも対応できるようコードを組んでいるのですが、 32bitで動いているのか64bitで動いているのかどのように確かめたらよいでしょうか? あるマクロの途中に #If VBA7 And win64 Then MsgBox ” 64bit ” #Else またはIf VBA7 And win32 MsgBox ”32bit” #End If を組み込むと、If分の終わりには If分の最後に#EndIfが必要です、と表示されて(EndIfを書いているのに) エラーになります。 2.エクセルマクロをIEと連携させて使っています。 IEを操作させている途中でエクセルのメッセージBoxを最前面表示させるには どうしたらよいでしょうか? IEで特定の操作をしたら、エクセルが最前面に出て、OKボタン付きのメッセージBoxが表示され、OKボタンを押すとIEを操作する という動作をコードに書いています。 コードを書いた直後は、IE上での特定の操作のあとメッセージBoxが適切に最前面表示されますが、 一度保存し閉じてファイルを開き直しマクロを実行すると、メッセージBoxは最前面に出てくれません。 検討したコードは 1. SetForegroundWindow 2.VBA AppActivate. Microsoft Excel. Capture 3.AppActivate Microsoft です。いずれのコードを書いた場合も、保存まではうまくメッセージBoxに回答できるが 保存しファイルを開き直してマクロを実行するとメッセージBoxはIEの後ろに隠れたままであり、エクセルを選択しないと最前面表示されません。 しかし一応最前面表示されることもあることから、マクロを一度実行するごとにエクセル内のデータが変わる可能性も考えられす。

  • VBAのプログラムとシートでの計算の速度

     現在、エクセルVBAでマクロを組んでいます。 マクロで算出した値を、セルを指定して、シートに代入しています。シートの代入する理由は、途中の計算結果の確認とエクセル関数を利用し、マクロの簡便化を図りたいためです。  代入した値を基にして、エクセル関数を使った結果の値を、他のセルに表示(代入)していますが、VBAで、その結果の値を、利用しています。  お聞きしたいのは、最初にシートに代入してから、エクセル関数の結果を得られる前に、VBAが、値を取得しないかどうか心配です。  素人考えでは、同じエクセル上で動作しているので、エクセル関数の計算終了後に、VBAが動くと思いますが。どうでしょうか?

  • VBAコードの書き換え?置き換え?

    いつもお世話になっております。 VBAの超初心者です。 VBEでコードの置き換えは出来るのでしょうか? 例えば、コード内にある”マクロ”という文字列をVBAという変数に置き換えたい場合、現在は一つ一つコピペで置き換えています。エクセルの置換みたいな機能はないのでしょうか? どなたかよろしくお願いいたします。

  • マクロとVBAの違いは?

    最近officeのVBAを勉強してるのですが「マクロ」と「VBA」って何が違うのでしょうか? アクセスはマクロとVBA(VBE)が別れてるけど、 エクセルは「マクロの記録」でVBAコードが取得できますよね。 マクロとVBAは同じ意味なのか、違う意味なのか教えていただけますか?

  • Excel VBAの SUM関数について質問です。

    Excel VBAの SUM関数について質問です。 SUM関数で合計の値を出す場合、 SUM(A1:A5)という関数で合計を出しますが SUM(sheet2.cells(1,1),sheet2.cells(5,1)) と言ったようにCellsで指定はできないのでしょうか? 複数の列にVBAのプログラムで合計の値を出したいのです。 WorksheetFunction.SumではSUM(A1:A5)のように 自動計算にならないと思うので・・・

  • 関数 VBA マクロ?

    おせわになります。 よくエクセルで見積書を作成してるんですが、 単価表の本からそのつど値段を拾って定価、原価、労務費を 入力しています。そのたび大変な時間を費やしてしまいます。 積算のソフトを買えばそれまでなのですが・・・・。 そこで、自分でエクセルを使って 一覧表から品名をクリックすると自動で見積書が 出来るようなものをつくりたいと考えています。 関数を使えばよいのでしょうが、なかなかよい参考書が 見つかりません。 それに、VBA、マクロっていう機能もどんなものなんでしょうか? よい参考書、VBA、マクロについて よろしくお願いします。

専門家に質問してみよう