VB初心者です。
いろんな処理をブックのマクロで行なっています。
今までは手作業でマクロを実行させてきたのですが
自動化したいと考えています。
処理させたいブックは複数あって
それぞれを処理するためのコントロール的な役割を
フォームをもたない実行ファイル(VB)で行ないたいと
思っているのです。
実行ファイルはタイマなどで自動起動を考えています。
そこで、
VBからブックのプロシージャーをCALLする方法がありましたら
具体的なコードを教えてください。
また、もっと簡単な方法がありましたら、
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
以前にエクセルとVBの連携のサンプルを乗せてます
http://oshiete1.goo.ne.jp/kotaeru.php3?q=165565
の#2の内容を見てください。
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=165565
No.5
- 回答日時:
エクセル起動
Set xlApp = New Excel.Application
'アドイン情報の更新
xlApp.AddIns("分析ツール").Installed = False
xlApp.AddIns("分析ツール").Installed = True
'DSFP_EP 作成 ワークブックを開く
xlApp.Workbooks.Open ("F:\foruser\Duration Data 作成.xls")
として、アドイン情報をリフレッシュする必要があるようです。
うまくいかなかったら報告してください。
ありがとうございました。
解決できました。
しかしそのエキスパートさには脱帽です。解答数からみて
仕事の合間に回答しているとは思えないのですが。
ついでで申し訳ないのですが、いろいろやってみましたが
自分では解決できそうにありません。
以下の不具合があります。
呼び出すマクロによっては終了時にエラーとなります。
エラーの内容は
「実行時エラー 440
Run メソッドは失敗しました:'_Application'オブジェクト 」
ただし、結果的にはうまく処理(最終的なファイルが出力されて終了)
できています。手動で行なった場合もうまく終了しています。
こころあたりありましたら、よろしくお願いします。
No.4
- 回答日時:
なるほど、状況がわかりました。
全てはWORKDAY関数のせいです。
これはエクセルのアドインの分析ツールの関数です。
これはエクセルの追加機能なので、WORKDAY関数は反映しないようです。
回避方法は・・・すぐには調査不可能なので、また明日までに調べておきますね。
No.3
- 回答日時:
>=TEXT(WORKDAY(TODAY(),0,Date!A2:A40),"yymmdd")&"_Duration.csv"
>と設定されていて
>
>通常は"011113_Duration.csv"となります。
とありますが
=TEXT(WORKDAY(TODAY(),0,Date!A2:A40),"yymmdd")&"
の部分で[011113]を取得するのですか?
WORKDAY関数って?オリジナル関数ですか?
画面の表示上では[011113]と出てるのに、VBAマクロ:Report内で、そこのセルの値を取得してる部分に"#NAME?"が入るという意味ですか?
VBAマクロ:Reportの内容を見てみないと、なんとも言えません。。。
この回答への補足
即日の解答ありがとうございます。これより別件で席を離れますが
以下補足いたします。
WorkDayはエクセルにあらかじめ組み込まれている関数のようです。以下はヘルプでみました。
書式
WORKDAY(開始日, 日数, 祭日)
開始日から起算して、指定された稼動日数だけ前または後の日付に対応する値を返します。
>とありますが
>=TEXT(WORKDAY(TODAY(),0,Date!A2:A40),"yymmdd")&"
>の部分で[011113]を取得するのですか?
はいそうです。
我々が使用している意味は祭日休日でない営業日を算出しています。
通常(VB起動でない)エクセルを開くと
”011113_Duration.csv"と入っていますが、
VBから起動すると、エクセルが表示され項目を見てみると "#NAME?"
となっています。
以下がReportのコードです(手動では動いています。)
A1の項目に例の内容(011113_Duration.csv)が入っています。
その内容(XXX)をOpenしてるところでエラーになり、エラーは
"実行時エラー 13
型が一致しません”です。
Sub Report()
Sheets("Macro").Select
Range("A1:A1").Select
XXX = ActiveCell.Value
Range("A10:A10").Select
YYY = ActiveCell.Value
Range("A2:A2").Select
ZZZ = ActiveCell.Value
ChDir "\\Tokyo\IFProto\foruser\調査\org"
Workbooks.Open FileName:= _
"\\Tokyo\IFProto\foruser\調査\org\" & XXX
Sheets("Yield").Select
以下コードはつづく
No.2
- 回答日時:
>VB初心者です。
とありますが、参考URLのサンプルは難しかったですか?
わからない所があったら、聞いてください。
解決したのであれば、コメントもポイント発行しなくてもいいので、締め切ってくださいね。
先日も重ね重ね解答ありがとうございます。
いろいろ試行錯誤しているのですが、新たな問題があって困っています。
以下の問題解決方法知ってましたらよろしくお願いします。
呼び出され側のエクセルのマクロ内でエラーとなります。
原因はシート内の項目を参照しているのですが、内容が
"#NAME?"となっています。
実際は
=TEXT(WORKDAY(TODAY(),0,Date!A2:A40),"yymmdd")&"_Duration.csv"
と設定されていて
通常は"011113_Duration.csv"となります。
DateシートのA2からA10までは日付が入っています。
うまく関数が実行されていないのですかね?
VBのコードは以下のように作成しました
Sub main()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
'エクセル起動
Set xlApp = New Excel.Application
'DSFP_EP 作成 ワークブックを開く
xlApp.Workbooks.Open ("F:\foruser\Duration Data 作成.xls")
Set xlBook = xlApp.ActiveWorkbook
xlApp.Visible = True
'マクロをCallする
Call xlApp.Run("Report")
'閉じる時の「保存しますか」を表示させない
xlBook.Saved = True
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 2 2022/11/18 15:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Excel(エクセル) 指定値をマクロで検索&シート移動 2 2022/04/27 23:29
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
メッセージボックスのOKボタ...
-
ExcelのVBA。public変数の値が...
-
一つのTeratermのマクロで複数...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで別のセルにあるふり...
-
Excel VBAからAccessマクロを実...
-
ExcelVBAでPDFを閉じるソース
-
Excel2013 VBA マクロ実行中に...
-
エクセルに張り付けた写真のフ...
-
IF関数を使ってマクロを実行さ...
-
Excel 改ページのVBAうまくい...
-
エクセルのマクロについて教え...
-
ExcelVBA 図形をクリックした...
-
EXCELのVBAでRange("A1:C4")を...
-
Excelのマクロについて教えてく...
-
有効数字N桁のマクロについて
-
MSアクセスのマクロ・モジュー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報