
自作マクロを作成し別ブックから転記するものですがExcel2000では正常に動くのですが、Excel2007では、転記対象のセルが0なら空白にするという行(IF文)で「型が一致しません」と表示されてしまいます。
ExecuteExcel4Macroが悪いのか、いろいろ調べましたが型とは?などマクロ初心者なので分からないです。宜しくお願いします。
For i = 1 To 7
Cells(i, 1).Value = ExecuteExcel4Macro("'\[meca.xls]Sheet1'!R" & i & "C1")
If ExecuteExcel4Macro("'\[meca.xls]Sheet1'!R" & i & "C1") = "0" Then Cells(i, 1).Value = ""
Next i
No.5ベストアンサー
- 回答日時:
またまた登場、myRangeです。
>転記されるようになりましたが
ということは、エラーの原因は先の回答のように
meca.xlsの該当セルに●エラー値●があったから、という理解でいいですか?
それが一番重要なことですから、コメントした方がいいと思います。
また、「エラー値」が原因なら、
エクセルのバージョンに関係なく同じエラーになるはずです。(I'm Sure)
ま、それは置いといて、補足の回答。
>1ステップごとに「値の更新」というダイアログボックスが出て
コードの前後を、DisplayAlerts プロパティで挟みましょう。
'---------------------------------------------------------
Application.DisplayAlerts = False '●最初はFalse
For i = 1 To 7
Cells(i, 1).Value = ExecuteExcel4Macro("'\[meca.xls]Sheet1'!R" & i & "C1")
If IsError(Cells(i, 1).Value) Then Cells(i, 1).Value = ""
If Cells(i, 1).Value = 0 Then Cells(i, 1).Value = ""
Next i
Application.DisplayAlerts = True '●最後はTrueに戻しておく
'-------------------------------------------
DisplayAleartsについてはご自分で調べてみてください。
そうすることがスキルアップにつながると考えます。
以上です。
エラーも無くなり、できました。
ステップごとにやってみてどうやら("'\[meca.xls]
あたりを疑って絶対パスに変更したら("'C:\[meca.xls]すんなりいきました。
お陰さまで大分勉強できてVBAの面白さも
わかってきました。
ありがとうございました。
No.4
- 回答日時:
回答3、myRangeです。
回答2で上手くいかなかったら(同じエラーが出たら)
meca.xlsから読み込んでいるセルの値に●エラー値(#VALUE,#DIV/0等)があることが考えられます。
それは、meca.xlsを見なくてもCells(i,1)に転記されてるはずなので直ぐ確認できます。
もしエラー値が原因だったら、以下のようにエラー値を判断します。
'--------------------------
For i = 1 To 7
Cells(i, 1).Value = ExecuteExcel4Macro("'\[meca.xls]Sheet1'!R" & i & "C1")
If IsError(Cells(i, 1).Value) Then Cells(i, 1).Value = ""
If Cells(i, 1).Value = 0 Then Cells(i, 1).Value = ""
Next i
'---------------------------
エラー値だったら、空白を転記
0だったら、空白を転記
マクロになれてきたら、On Error ステートメントを使うのもいいかも知れません。
以上です。
この回答への補足
myRange様。
細かい点まで解答していただいて感謝します。
転記されるようになりましたが
1ステップごとに「値の更新」という
ダイアログボックスが出て
その度にファイルを選び直さないと
値が転記されないのです。
どうすればよいでしょうか。
No.3
- 回答日時:
手元に2007がないので検証できないので何ですが。
。。>If ExecuteExcel4Macro("'\[meca.xls]Sheet1'!R" & i & "C1") = "0" Then Cells(i, 1).Value = ""
の ="0" を = 0 にしてみてください。
それでダメなら、
ExecuteExcel4Macro("'\[meca.xls]Sheet1'!R" & i & "C1")
を2度使う必要はないので、IF文を
If Cells(i, 1).Value = 0 Then Cells(i, 1).Value = 0
に代えてみてください。
以上です。
No.2
- 回答日時:
度々すみません。
分かりやすいページがありました。
[開発]タブの[マクロのセキュリティ]でも設定できます。
ご参考まで。
参考URL:http://kiyopon.sakura.ne.jp/soft/2007.html
この回答への補足
ご連絡ありがとうございます。事前にマクロは有効にしていました。
動作させた後で実行したら「型が一致しません」のエラーが表示されました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プロファイルエラー
-
MACアドレス 00:E0:C3 SAKAI って
-
MacでKCFErrorDomainCFNetwork ...
-
BASIC認証エラー時の表示HTML指定
-
循環参照にならない方法があっ...
-
エクセルVBAでメッセージボック...
-
検索をかけた時、ページを開け...
-
サーバーというのとメインフレ...
-
「DNSサーバーを自動的に取得す...
-
自宅サーバーwin+xampp グロー...
-
パスワード設定していないユー...
-
/var/log/httpd/error_logに大...
-
ネットワークの再起動方法
-
auoneが設定できません
-
LinuxのAccessログはどこにある...
-
SSHに繋がらない
-
postfixによる受信がうまくいか...
-
Ubuntu(zorin os)でパスワード...
-
Solarisでのログ情報ファイル
-
vsftpd のユーザ認証のトラブル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで#N/Aを含めた平均値...
-
循環参照にならない方法があっ...
-
MACアドレス 00:E0:C3 SAKAI って
-
ドメインに参加しようとするとD...
-
プロファイルエラー
-
【QnapNAS】不良HDDと診断され...
-
マクロでのエラーについて
-
アウトルックで送信時に「名前...
-
エクセルVBA 関数エラー箇所を...
-
エクセル #N/Aを印刷時に表示...
-
MacでKCFErrorDomainCFNetwork ...
-
『ゼロサブネット』という言葉...
-
WSUSインストール時に設定ウィ...
-
Skype で検索時にエラーコメン...
-
CPUファン
-
CDManipulatorでのCCCDコピーに...
-
IEでランタイムエラーというの...
-
教えてgooサーバーエラー
-
クライアントが切断されました。
-
ロイロノートのエラーについて ...
おすすめ情報