過去ログ

                                Page      15
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼エクセルのVBAをAccessで実行する方法  素人 02/9/5(木) 9:21
   ┣コピーじゃ無理です(^^;  yu-ji 02/9/5(木) 9:50
   ┃  ┗AccessからExcelVBAを起動  yu-ji 02/9/5(木) 9:55
   ┃     ┗Re:AccessからExcelVBAを起動  素人 02/9/5(木) 13:56
   ┃        ┗Re:AccessからExcelVBAを起動  yu-ji 02/9/5(木) 14:41
   ┃           ┗Re:AccessからExcelVBAを起動  素人 02/9/5(木) 18:26
   ┃              ┗Re:AccessからExcelVBAを起動  素人 02/9/5(木) 19:11
   ┗Re:エクセルのVBAをAccessで実行する方法  こうちゃん 02/9/5(木) 9:52
      ┗駄レスです。  yu-ji 02/9/5(木) 9:57
         ┗(^^;) T/O  こうちゃん 02/9/5(木) 13:27

 ───────────────────────────────────────
 ■題名 : エクセルのVBAをAccessで実行する方法
 ■名前 : 素人
 ■日付 : 02/9/5(木) 9:21
 -------------------------------------------------------------------------
   エクセルのVBAをAccessで実行する方法をご存知の方がいらっしいましたらご教授お願いします。

エクセルのVBAから下記のコードをそのままAccessVBAにコピ−して実行しましたがエラ−となりました。

よろしくお願いします。

Option Explicit
'
'VF05 - List Billing DocumentsでMaterial number毎に集めたbillingDocument
'リストをひとつのファイルに集約する。

Sub BillingCollectionVF05()

Application.ScreenUpdating = False

Workbooks.Open Filename:= _
    "C:\Documents and Settings\TAKAGI\My Documents\Billing\200207\BillDocDatabase.xls"

  
Dim Ifile As String, Ipath As String, CC%
Ipath = "C:\Documents and Settings\TAKAGI\My Documents\Billing" 'パス名指定
 '
Ifile = Dir(Ipath & "\*")
Do Until Ifile = ""
   CC% = CC% + 1
   Workbooks.Open Ipath & "\" & Ifile
  
  
Dim FirstRow, Lastrow As String

FirstRow = Range("B65536").End(xlUp).End(xlUp).Address
Lastrow = Range("B65536").End(xlUp).Offset(, 27).Address

Range(FirstRow & ":" & Lastrow).Copy

Windows("BillDocDatabase.xls").Activate

Range("A65536").End(xlUp).Offset(1, 0).Select

ActiveSheet.Paste

Application.CutCopyMode = False

Windows(Ifile).Close False
   
  
Ifile = Dir '引き続き検索
Loop

Workbooks.OpenText Filename:= _
    "C:\Documents and Settings\TAKAGI\My Documents\Billing\200207\Contract", _
   StartRow:=8, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
    ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
    , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
    Array(3, 1), Array(4, 1))

Dim PareRow As String

PareRow = Range("B1").End(xlDown).Offset(-1, 0).Row

Rows(PareRow).Delete

Columns("A").Delete
Columns("D").Delete

Application.ScreenUpdating = True

End Sub

 ───────────────────────────────────────  ■題名 : コピーじゃ無理です(^^;  ■名前 : yu-ji  ■日付 : 02/9/5(木) 9:50  -------------------------------------------------------------------------
   ▼素人 さん:
>エクセルのVBAをAccessで実行する方法をご存知の方がいらっしいましたら
>ご教授お願いします。
>
>エクセルのVBAから下記のコードをそのままAccessVBAにコピ−して実行
>しましたがエラ−となりました。

そりゃー、無理ってもんです(笑)

ExcelとAccessは、また全然別のもんなので、当然VBAも別物です。
#同じVBAということで、共通する点は多いと思いますが。


可能なら、まずはAccessVBAを勉強する前に、Access自体を勉強した方が
いいのではないかと思います(^^;

ちなみに、やりたいことというのは、AccessでExcelファイルのVBAを起動
したいということでしょうか?
それなら、やり方がありますが、流石に、このコードを見ても、何がしたいか
分からないので(^^;;;

 ───────────────────────────────────────  ■題名 : AccessからExcelVBAを起動  ■名前 : yu-ji  ■日付 : 02/9/5(木) 9:55  -------------------------------------------------------------------------
   ▼yu-ji さん:
>ちなみに、やりたいことというのは、AccessでExcelファイルのVBAを起動
>したいということでしょうか?

ちなみに、↑がしたいことなら、以下のようなコードを記述すれば
Excelファイルを開いてマクロを実行できます。

Function test()

  Dim XlApl As Object
  Dim XlFile As Object
  
  Set XlApl = CreateObject("excel.application")
  Set XlFile = XlApl.workbooks.Open("VBAが書いてあるExcelファイル")
  XlFile.Application.Run "BillingCollectionVF05"

  (略)

End Function

 ───────────────────────────────────────  ■題名 : Re:AccessからExcelVBAを起動  ■名前 : 素人  ■日付 : 02/9/5(木) 13:56  -------------------------------------------------------------------------
   ▼yu-ji さん,こんにちわ

下記コ-ドで試してみたところ、”1004:マクロBillingCollectionVF05が見つかりません”となりました。

よろしくお願いします。

>>ちなみに、やりたいことというのは、AccessでExcelファイルのVBAを起動
>>したいということでしょうか?
>
>ちなみに、↑がしたいことなら、以下のようなコードを記述すれば
>Excelファイルを開いてマクロを実行できます。
>
>Function test()
>
>  Dim XlApl As Object
>  Dim XlFile As Object
>  
>  Set XlApl = CreateObject("excel.application")
>  Set XlFile = XlApl.workbooks.Open("VBAが書いてあるExcelファイル")
>  XlFile.Application.Run "BillingCollectionVF05"
>
>  (略)
>
>End Function

 ───────────────────────────────────────  ■題名 : Re:AccessからExcelVBAを起動  ■名前 : yu-ji  ■日付 : 02/9/5(木) 14:41  -------------------------------------------------------------------------
   ▼素人 さん:
>▼yu-ji さん,こんにちわ
>
>下記コ-ドで試してみたところ、”1004:マクロBillingCollectionVF05が
>見つかりません”となりました。

なぜでしょうか(^^;

Subで宣言してますよね?
関数名とか変えてないですよね?

んーと、まずはOpenとRunの間にVisibleを入れて、デバッグモードで1行ずつ
実行させて、ちゃんとExcelファイルが開かれているか確認してみてもらえますか?
その後、Runの行を実行させる前に、Excelファイルの【ツール】-【マクロ】-【マクロ】
で、ちゃんと"BillingCollectionVF05"が表示されているか確認してみてください。
表示されていれば、それでマクロの実行を手動で行い、マクロの実行ができましたか?

>>  Set XlFile = XlApl.workbooks.Open("VBAが書いてあるExcelファイル")
XlFile.Application.Visible = True
>>  XlFile.Application.Run "BillingCollectionVF05"

 ───────────────────────────────────────  ■題名 : Re:AccessからExcelVBAを起動  ■名前 : 素人  ■日付 : 02/9/5(木) 18:26  -------------------------------------------------------------------------
    まず、Functionを標準モジュ-ルでやりましたが、”コンパイルエラ−:名前が適切ではありません”と表示されました。

>>下記コ-ドで試してみたところ、”1004:マクロBillingCollectionVF05が
>>見つかりません”となりました。
>
>なぜでしょうか(^^;
>
>Subで宣言してますよね?
>関数名とか変えてないですよね?
>
>んーと、まずはOpenとRunの間にVisibleを入れて、デバッグモードで1行ずつ
>実行させて、ちゃんとExcelファイルが開かれているか確認してみてもらえますか?
>その後、Runの行を実行させる前に、Excelファイルの【ツール】-【マクロ】-【マクロ】
>で、ちゃんと"BillingCollectionVF05"が表示されているか確認してみてください。
>表示されていれば、それでマクロの実行を手動で行い、マクロの実行ができましたか?
>
>>>  Set XlFile = XlApl.workbooks.Open("VBAが書いてあるExcelファイル")
>XlFile.Application.Visible = True
>>>  XlFile.Application.Run "BillingCollectionVF05"

 ───────────────────────────────────────  ■題名 : Re:AccessからExcelVBAを起動  ■名前 : 素人  ■日付 : 02/9/5(木) 19:11  -------------------------------------------------------------------------
   こうちゃんさん、YU=JIさんこんばんわ。

おかげさまで解決しました。

ありがとうございました。

ファイル名が全く同じエクセルファイルが違うDirectoryに複数あったため、違うファイルを開いていたことが判明しました。

大変お騒がせいたしました。 

 ───────────────────────────────────────  ■題名 : Re:エクセルのVBAをAccessで実行する方法  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/5(木) 9:52  -------------------------------------------------------------------------
   素人 さん、こんにちは

>エクセルのVBAをAccessで実行する方法をご存知の方がいらっしいましたらご教授お願いします。
>
>エクセルのVBAから下記のコードをそのままAccessVBAにコピ−して実行しましたがエラ−となりました。

そのままでは実行できません^^;
エクセルをオブジェクトとして開いて実行する必要があります。
この話題は質問箱V3 http://www21.tok2.com/home/vbalab/ でも出ていましたので、V3のAccess質問箱で、"EXCEL" で検索してみてください。

そこを見た上で、不明点はまた質問してくださいね(^^)

 ───────────────────────────────────────  ■題名 : 駄レスです。  ■名前 : yu-ji  ■日付 : 02/9/5(木) 9:57  -------------------------------------------------------------------------
   他のコメントの発言時間から、ひょっとしてこのレスを書いているのかな?
と思ったんですが、やっぱりかぶりましたね(笑)

 ───────────────────────────────────────  ■題名 : (^^;) T/O  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/5(木) 13:27  -------------------------------------------------------------------------
   [本文なし]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 15