現在iMac 1.9GHz(isight内蔵) PowerPC G5 でoffice 2004 for macを使用しています。
以下のような複数のフォルダを含む任意のフォルダ(AA)内から任意のファイル名(aa or dd)のファイルが存在するかどうかを検索し、
ファイルが存在すればファイル名を、無ければ無いことを返すプログラムを作成しようと考えています。
AA---BB---aa.xls
|
--CC---bb.xls
| |
| --cc.xls
---------dd.xls
そのために以下のプログラムを用意しました。(他のサイトのマル写しですが)
ーーーーー
Sub Sample()
Dim f, buf As String, cnt As Long, FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
With Application.FileSearch
.NewSearch
buf = InputBox("検索するファイル名を指定してください")
If buf = "" Or buf = "False" Then Exit Sub
.Filename = buf
buf = GetFolder("検索を開始するフォルダを指定してください")
If buf = "" Then Exit Sub
.LookIn = buf
.SearchSubFolders = True ''サブフォルダも検索する
If .Execute() > 0 Then
For Each f In .FoundFiles
cnt = cnt + 1
Cells(cnt, 1) = f ''パス+ファイル名
Cells(cnt, 2) = FSO.GetFile(f).Name ''ファイル名
Cells(cnt, 3) = FSO.GetFile(f).ParentFolder ''パス
Next f
Else
MsgBox "見つかりませんでした"
End If
End With
Set FSO = Nothing
End Sub
Function GetFolder(msg As String)
Dim Shell, myPath
Set Shell = CreateObject("Shell.Application")
Set myPath = Shell.BrowseForFolder(&O0, msg, &H1 + &H10)
If Not myPath Is Nothing Then
GetFolder = myPath.Items.Item.Path
Else
GetFolder = ""
End If
Set Shell = Nothing
Set myPath = Nothing
End Function
ーーーーー
このプログラムをexcel2004上のマクロとして実行すると、
実行時エラー’429’:
ActiveX コンポーネントはオブジェクトを作成できません。
とエラーが表示されます。
そこで、デバッグとして一行ずつステップインさせると、二行目の
Set FSO = CreateObject("Scripting.FileSystemObject")
の部分でエラーとなり、動作が停止します。
何故この様なエラーが発生するのか判りません。
このエラーが発生する理由と解決策をお教えいただきたいと思います。
宜しくお願いいたします。
No.3ベストアンサー
- 回答日時:
VBA マクロから AppleScript を呼ぶ場合は、MacScript 関数を使います。
http://office.microsoft.com/ja-jp/access-help/HA …
最初から全て AppleScript で書いて、メニューバーに表示されるスクリプトメニューから実行するという方法もあります。
(スクリプトメニューの表示は AppleScript エディタの環境設定で行います)
ご回答ありがとうございます。
MacScript 関数 という物が存在するのですね。
もう少し勉強してからチャレンジしてみます。
ありがとうございました。
No.2
- 回答日時:
ActiveX コンポーネントを動作する為には『WindowsOS』が動作している事が前提です。
ですからこのスクリプトはエラーに成ります。
Macの場合は『AppleScript エディタ』でスクリプトを作成。
ご回答ありがとうございます。
>Macの場合は『AppleScript エディタ』でスクリプトを作成。
と有りますが、
Excelのマクロで使用する場合は
AppleScript エディタで作成したスクリプトをExcelで呼び出す。
というような使い方をするということでしょうか。
ご教授いただければ幸いです。
宜しくお願いいたします。
No.1
- 回答日時:
> ActiveX コンポーネントはオブジェクトを作成できません。
というエラーメッセージそのままの理由です。
> Mac. の Excel で ActiveX コントロールを使用することはできません。
http://support.microsoft.com/kb/274222/ja
解決策は、Windows を使用するしかありません。
ご回答ありがとうございます。
macでは使用出来ないのですか。少し予想外です。
もともとはwindows機を使用していたので、macに移行した
だけでエラーが発生したことで混乱しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ゼロからのOS自作入門について
-
Workbook_openでマクロが実行さ...
-
Windows2000でアップデート時に...
-
Excel2019 非表示モジュール内...
-
VBA+VBSによる別インスタンスB...
-
Linux再起動後のエラーメッセー...
-
Apache2.4の起動でエラー
-
[ マクロ ] エラーになったり...
-
VBA オートメーションエラー(...
-
実行時エラー429の解決方法につ...
-
ワードかエクセルで、KOKU...
-
連絡先をあいうえお順にするに...
-
エクセル宛名ラベルが重複する
-
一点一葉とはどんな意味ですか?
-
ラベルの差込印刷で2ページ目以...
-
インデックスに印刷する方法
-
ワードの差し込み印刷で,ペー...
-
筆王
-
Accessのフォームのみ表示させたい
-
PDFファイル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA+VBSによる別インスタンスB...
-
Excel2019 非表示モジュール内...
-
ステートメントの末尾が不正です
-
Linux再起動後のエラーメッセー...
-
ゼロからのOS自作入門について
-
"echo off"の動きをLinuxのシェ...
-
イベントプロパティに指定した...
-
VBA オートメーションエラー(...
-
Apache2.4の起動でエラー
-
エクセルに埋め込んだPDFの実行...
-
「パラメータが無効のため、処...
-
[ マクロ ] エラーになったり...
-
Workbook_openでマクロが実行さ...
-
PCのシャットダウン時の警告...
-
UNIXデータ展開時のエラーメッ...
-
ペイントで取り込んだ画像のサ...
-
LinuxのFedora31のdnfdragoraに...
-
遠隔地にあるパソコンのオフィ...
-
UNIX(Solaris)でのtarファイル...
-
エラーログの意味ご存知でした...
おすすめ情報