[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Win7では使用できないコードなのでしょうか?』(たかやす)
https://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.