Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


59370 / 76738 ←次へ | 前へ→

【22061】Re:実行内容を・・・
発言  ichinose  - 05/2/8(火) 8:22 -

引用なし
パスワード
   pi さん、皆さん、おはようございます。
>Runメゾットも使ってみたのですが、
>Runメゾットは失敗しました'_Application'メゾット
>と出てきます。
runメソッドは、テキストファイルへのアクセスではないですよ!!
マクロコードが入ったExcelブックに対して行って下さい。
つまり、テキストファイルを媒体にするのはやめて
マクロコードを含んだExcelを媒体にしてみては? という意味です。

>使用目的は、友達に自分の作ったファイルを送った後に、
>テキストファイルを使い、マクロを拡張したいと考えているからです。

そのお友達とVBAの共同開発をしているのですか?
もしそうだとしたら、Vbprojectを使うと言うのもありかなあ・・
と思います。

今回の事例で使用するしないはもうちょっと内容を聞いてみないと
わかりませんが、

90.txtというテキストファイルがマクロを含むブックと同じフォルダにあったとして

'=============================================================
Sub main()
  ret = addcode(ThisWorkbook.Path & "\90.txt", ThisWorkbook, "addmdl")
  If ret = 0 Then
   msgbox "挿入成功"
   'Application.Run "macro1"
  Else
   msgbox Error(ret)
  End If
End Sub
'=======================================================================
Function addcode(flnm As String, wk As Workbook, Optional mdnm As String = "", Optional prnm As String) As Long
' 機能:指定されたテキストファイルから、指定されたブックにコードを追加又は、書き換える
' input : flnm---コードが書かれたテキストファイルのパス名
'     wk-----コードを書き込むブックオブジェクト
'     mdnm---書き換える、又は、追加するモジュール名(追加の場合は、標準モジュール)
'         指定されたモジュール名があれば、書き換え、なければ追加
'     prnm---書き換えるプロシジャー名
  On Error Resume Next
  Dim vbcp As Object
  With wk.VBProject
   Set vbcp = .VBComponents(mdnm)
   If Err.Number <> 0 Then
     Set vbcp = .VBComponents.Add(1)
     If mdnm <> "" Then vbcp.Name = mdnm
   Else
     If prnm <> "" Then
      Err.Clear
      stln = vbcp.CodeModule.ProcStartLine(prnm, 0)
      edln = vbcp.CodeModule.ProcCountLines(prnm, 0)
      vbcp.CodeModule.DeleteLines stln, edln - stln + 1
      End If
     End If
   Err.Clear
   vbcp.CodeModule.AddFromFile flnm
   End With
  addcode = Err.Number
  On Error GoTo 0
End Function

上記コードでテキストファイル中のコードを標準モジュールに
読み込みます。
この方法を使用するか否かは十分検討の上で行って下さい。


結果的にpi さんの今回の事例に使用しない場合でも近い将来、
piさんが開発者にとって便利なツールの作成する場合、何らかのきっかけになれば
投稿した意味はあります!!

0 hits

【21914】実行内容を・・・ pi 05/2/3(木) 17:18 質問
【21915】Re:実行内容を・・・ IROC 05/2/3(木) 17:28 回答
【21949】Re:実行内容を・・・ pi 05/2/4(金) 16:50 発言
【21986】Re:実行内容を・・・ ichinose 05/2/6(日) 14:05 発言
【22038】Re:実行内容を・・・ pi 05/2/7(月) 17:20 発言
【22040】Re:実行内容を・・・ IROC 05/2/7(月) 17:26 回答
【22061】Re:実行内容を・・・ ichinose 05/2/8(火) 8:22 発言
【22041】Re:実行内容を・・・ sa 05/2/7(月) 17:30 発言
【22044】Re:実行内容を・・・ pi 05/2/7(月) 17:58 発言
【22045】Re:実行内容を・・・ IROC 05/2/7(月) 18:04 回答
【22047】Re:実行内容を・・・ pi 05/2/7(月) 18:31 発言
【22063】Re:実行内容を・・・ IROC 05/2/8(火) 8:36 回答
【22094】Re:実行内容を・・・ pi 05/2/8(火) 17:10 発言
【22118】Re:実行内容を・・・ IROC 05/2/9(水) 9:50 回答
【22135】Re:実行内容を・・・ pi 05/2/9(水) 16:52 発言
【22136】Re:実行内容を・・・ りすりす 05/2/9(水) 17:03 発言
【22137】Re:実行内容を・・・ pi 05/2/9(水) 17:29 回答
【22139】Re:実行内容を・・・ ichinose 05/2/9(水) 18:35 発言
【22141】Re:実行内容を・・・ IROC 05/2/9(水) 20:30 回答
【22149】Re:実行内容を・・・ pi 05/2/9(水) 23:44 発言
【22151】Re:実行内容を・・・ ichinose 05/2/10(木) 0:07 発言
【22153】Re:実行内容を・・・ 追伸 ichinose 05/2/10(木) 0:53 発言
【22227】Re:実行内容を・・・ pi 05/2/12(土) 18:15 発言
【22246】Re:実行内容を・・・ ichinose 05/2/13(日) 10:30 発言

59370 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free