[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Win7では使用できないコードなのでしょうか?』(たかやす)
http://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=[[20081023153339]]
こちらのichinoseさんの最終回答を使用して
Option Explicit
Sub ContinuousPrint()
Dim fso As Object Dim ff As Object Dim ffi As Object Dim Rng As Range Dim myarray As Variant Set Rng = Range("I1", Cells(Rows.Count, "I").End(xlUp)) If Rng.Count > 1 Then myarray = get_array(Rng) With CreateObject("Shell.Application") Set ff = .Namespace("C:\Users\AAA\Documents\【作業】\文書") End With Set fso = CreateObject("scripting.filesystemobject") For Each ffi In ff.items If ffi.IsFileSystem And (Not ffi.IsFolder) _ And LCase(fso.GetExtensionName(ffi.Name)) = "xdw" _ And Not IsError(Application.Match(fso.getbasename(ffi.Name), myarray, 0)) Then ffi.InvokeVerb "印刷(&P)" End If Next Set ffi = Nothing Set ff = Nothing Set fso = Nothing End If End Sub Function get_array(Rng As Range, Optional except As Long = 1) As Variant On Error Resume Next Dim rngA As Range With CreateObject("scripting.dictionary") For Each rngA In Rng If rngA.Row <> except Then .Item(rngA.Value) = "" End If Next get_array = .Keys End With End Function
としたのですが、XPに2003では動くのですが、WIN7で2003/2010共存で2003を使用して
動かすと印刷されないのです。
で、タイトルのようにWIN7だと動かないコードなのかな?と思った次第です。
解決方法はありますでしょうか?
< 使用 アプリ:2003 / 2010共存、使用 OS:Windows7 >
こんにちは。
ShellオブジェクトはOSに依存します。書かれたコードはWin2000〜XPでのみ使用可能です。 Vista以降はInvokeVerbメソッドが存在はするが、なぜか使用はできませんので、
>ffi.InvokeVerb "印刷(&P)"
ここを
Dim veb As Object For Each veb In ffi.Verbs If veb.name = "印刷(&P)" then veb.doit Exit for End If Next
のようにしてみてはどうでしょうか。 (ちび坊主) 2014/05/30(金) 17:56
動きました! ありがとうございます。
とても助かりました。
(たかやす) 2014/06/02(月) 16:52
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.