Excel VBA質問箱 IV

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

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


323 / 3841 ページ ←次へ | 前へ→

【75967】Re:exvel2013でのFileSearchの代替につい...
質問  佐藤小次郎 E-MAIL  - 14/8/13(水) 0:37 -

引用なし
パスワード
   ▼kanabun さん:

大変申し訳ありません。

Option Explicit

  Public TS_Sht      As Worksheet    ':  Set Ts_Sht = Worksheets("テスト用")

  Public AD_Sht      As Worksheet     ' 管理設定シート
  Public EL_Sht      As Worksheet     ' イベント一覧シート(Event-List)[List:表]
  Public EC_Sht      As Worksheet     ' イベント対応シート(Event-Cope)[Cope:対処]
  Public WK_Sht      As Worksheet     ' ワーク用シート

  Public fs        As Variant
  Public fi        As Variant

  Public Open_SW     As String      ' オープンエラー確認[エラー有:Error エラー無:OK]
  Public Open_SW1     As String      ' 現在の設定イベント一覧確認[有:OK 無:NG]
  Public Open_SW2     As String      ' 現在の設定イベント対応確認[有:OK 無:NG]
  Public TL_Name     As String      ' 起動ツール名(ファイル名)
  Public TL_Path     As String      ' 起動ツールのフルパス名
  Public WK_Name     As String      ' ワーク用イベント一覧名(ファイル名)
  Public WK_Path     As String      ' ワーク用イベント一覧のフルパス名
  
  Public WK_Path2     As String      ' 参照のフルパス名
  
  Public WK_Date1     As String      ' ワーク用更新日1
  Public WK_Date2     As String      ' ワーク用更新日2
  Public AD_Name1     As String      ' 現在の設定イベント一覧内容(ファイル名)
  Public AD_Name2     As String      ' 現在の設定イベント対応内容(ファイル名)
  Public AD_Path1     As String      ' 現在の設定イベント一覧内容のフルパス名
  Public AD_Path2     As String      ' 現在の設定イベント対応内容のフルパス名
  Public AD_Proc1     As String      ' イベント一覧の更新処理(ON:処理あり OFF:処理なし)
  Public AD_Proc2     As String      ' イベント対応の更新処理(ON:処理あり OFF:処理なし)
  Public Name1      As String      ' イベント一覧名(ファイル名)
  Public Name2      As String      ' イベント対応(ファイル名)
  Public Path1      As String      ' イベント一覧のフルパス名
  Public Path2      As String      ' イベント対応のフルパス名
  Public Folder_Name   As String      ' 当ツールの上位フォルダ名
  Public AD_Date1     As String      ' 管理設定シート上のイベント一覧表の更新日
  Public AD_Date2     As String      ' 管理設定シート上のイベント対応表の更新日
  Public Cnt(60)                ' カウンタの配列(イベント表検索にて使用)

  Public WK_Box1     As String      ' 検索画面 クラス  選択コンボボックス用
  Public WK_Box2     As String      ' 検索画面 メッセージ選択コンボボックス用
  Public WK_Box3     As String      ' 対応画面 クラス  選択コンボボックス用
  Public WK_Box4     As String      ' 対応画面 対応クラス選択コンボボックス用

  Public Search_Code1   As String      ' 検索画面にて選択した障害の対応コード引渡し用(対応表示用)
  Public Search_Code2   As String      ' 検索画面にて選択した障害の対応コード引渡し用(対応種類用)

  Public List_End, Cope_End          ' ワークエリア
  Public EL_Cnt, EC_Cnt
  Public EL_Disp_S, EL_Disp_E, EC_Disp_S, EC_Disp_E
  Public i, j, k                ' 添字エリア

Sub Auto_Open()

  Application.DisplayAlerts = False  ' Display 非表示
'  Application.DisplayAlerts = True  ' Display 表示

  Application.Visible = False

'  Application.ScreenUpdating = False

' 初期値設定処理
  Variable_Set

' ファイルチェック(当ツールで使用するExcelの、イベント一覧.xls・イベント対応.xls がオープンされている時は、クローズする)
  i = Workbooks.Count
  Do Until i = 1
    If (Workbooks(i).Name = "TEC103イベント一覧.xls") Or _
      (Workbooks(i).Name = "TEC104イベント対応.xls") Then
      Workbooks(i).Close SaveChanges:=False
    End If
    i = i - 1
  Loop

' 現在の設定ファイルの有無確認
  Open_SW1 = "NG"
  Open_SW2 = "NG"
  
' イベント一覧.xls・イベント対応.xls の存在チェック
' 存在する場合は、Open_SWにOKがセットされる

  File_Open_CHK

' ファイル 検索
' └フォルダ 検索
  i = 1
  j = 1
  Do Until InStr(i, TL_Path, "\") = 0    'TL_Path = 当ツールのフルパス名 (¥全てを検索し終わるまで繰り返す)
    Cnt(j) = InStr(i, TL_Path, "\")    'Excelブック名の前に付いている¥の位置をセットする
    i = Cnt(j) + 1             'i = 当ツール名の先頭の位置
    j = j + 1               'j = ¥検索の為に繰り返した回数 = カウンタ配列のセットされたカウンタの位置
  Loop
  Cnt(0) = j - 1
  
' イベント一覧.xlsの存在チェックで、NGの場合、再度検索を行う。
' └イベント一覧 検索
  If Open_SW1 = "NG" Then
    WK_Name = "TEC103イベント一覧.xls"
    WK_Path = ""
    
    File_Search   'イベント一覧.xlsの検索
    
    If Open_SW = "Error" Then
      Exit Sub
    End If
    
    AD_Name1 = WK_Name
    AD_Path1 = WK_Path '検索出来たイベント一覧.xlsの絶対パスをセット
  End If
  
' イベント対応.xlsの存在チェックで、NGの場合、再度検索を行う。
' └イベント対応 検索
  If Open_SW2 = "NG" Then
    WK_Name = "TEC104イベント対応.xls"
    WK_Path = ""
    
    File_Search   'イベント対応.xlsの検索
    If Open_SW = "Error" Then
      Exit Sub
    End If
    AD_Name2 = WK_Name
    AD_Path2 = WK_Path '検索出来たイベント対応.xlsの絶対パスをセット
  End If

  Set fs = CreateObject("Scripting.FileSystemObject")       ' 日付取得

' イベント一覧・対応の更新日チェック
  For i = 1 To 2
    Select Case i
      Case 1:   Set fi = fs.getfile(AD_Path1)        ' イベント一覧セット
            WK_Date1 = AD_Date1             
      Select Case i
        Case 1:   AD_Proc1 = "ON"             ' イベント一覧更新処理あり
              AD_Sht.Cells(2, 3) = WK_Date2      ' 管理情報シートの最新データに、イベント一覧の最終更新日をセット
              
        Case 2:   AD_Proc2 = "ON"             ' イベント対応更新処理あり
              AD_Sht.Cells(3, 3) = WK_Date2      ' 管理情報シートの最新データに、イベント対応の最終更新日をセット
      End Select
    End If
  Next

'  Application.WindowState = xlMinimized    ' テストの為に最小化
  
' 当ツールの保持する2つのExcelの最終更新日よりも、実際の更新日が新しい場合のみ、更新用のフォームを開く
  If (AD_Proc1 = "ON") Or (AD_Proc2 = "ON") Then
    Uf_Main.Show
  Else
    Uf_Search.Show
'    MsgBox "Search"
  End If

End Sub

' * Function領域 スタート
'
Function Variable_Set()                  ' シート名・パス名等のセット

' シート設定
  Set AD_Sht = Worksheets("管理設定")
  Set EL_Sht = Worksheets("イベント一覧")
  Set EC_Sht = Worksheets("イベント対応")

' ツール情報設定
  TL_Name = ActiveWorkbook.Name               'Excelの名前のセット
  TL_Path = ActiveWorkbook.FullName             'Excelのフルパス&名前のセット

' 管理設定シート情報セット
  AD_Path1 = AD_Sht.Cells(6, 2)  'TEC103イベント一覧.xlsのパス
  AD_Path2 = AD_Sht.Cells(7, 2)  'TEC104イベント対応.xlsのパス
  AD_Name1 = AD_Sht.Cells(6, 5)  'TEC103イベント一覧
  AD_Name2 = AD_Sht.Cells(7, 5)  'TEC104イベント対応
  AD_Date1 = AD_Sht.Cells(2, 2)
  AD_Date2 = AD_Sht.Cells(3, 2)
  AD_Proc1 = "OFF"
  AD_Proc2 = "OFF"

End Function

Function File_Open_CHK()          ' 関連Excelの、イベント一覧・イベント対応のオープン・クローズによって、存在をチェックする

On Error GoTo Open_Error          ' オープンエラーの場合、Open_Errorに飛ぶ

  Dim SW

'存在チェックのため、イベント一覧.xlsを開いて閉じる
'AD_Path1 : イベント一覧.xlsのフルパス名(管理設定シート内)

Open_Event1:
  SW = 1
  Workbooks.Open Filename:=AD_Path1  'TEC103イベント一覧.xlsのオープン
  ActiveWorkbook.Close
  Open_SW1 = "OK"

'存在チェックのため、イベント対応.xlsを開いて閉じる
'AD_Path2 : イベント対応.xlsのフルパス名(管理設定シート内)

Open_Event2:
  SW = 2
  Workbooks.Open Filename:=AD_Path2  'TEC104イベント対応.xlsのオープン
  ActiveWorkbook.Close
  Open_SW2 = "OK"

  Exit Function

Open_Error:
  If Err.Number <> 1004 Then  'ファイルが存在しないとき以外のエラーの場合
    MsgBox Err.Description
    Exit Function
  End If

  If SW = 1 Then        '2つ目のファイルのオープンが行われていない場合
    Resume Open_Event2    'Open_Event2に飛ぶ
  End If

End Function

Function File_Search()                   ' ファイル検索

  Open_SW = "OK"

  Set fs = Application.FileSearch
  j = Cnt(0)
  Do Until j = 0
    With fs
      .LookIn = Left(TL_Path, Cnt(j))    '検索するフォルダのセット
      .SearchSubFolders = True        'フォルダ配下のフォルダ内も検索する
      .Filename = WK_Name          '検索するファイル名のセット
      
      If (.Execute < 1) And (j = 1) Then   '検索出来たファイル数が0以下のときは、エラー
        MsgBox "【 " & WK_Name & " 】 対象ファイルなし " & Chr(10) & Chr(10) & _
            "対象ファイルを準備後、処理して下さい。"
        Open_SW = "Error"
        Exit Function
      End If

      If .Execute > 0 Then          '検索出来たファイル数が1以上のとき
        For i = 1 To .Execute       '検索出来たファイル中に、同名ファイルが存在した場合、フォルダのパスをセット
          If "\" & .Filename = Right(.FoundFiles(i), 17) Then
            WK_Path = .FoundFiles(i)
            Exit Do
          End If
        Next
      End If
    End With
    j = j - 1
  Loop

End Function
・ツリー全体表示

【75966】Re:exvel2013でのFileSearchの代替につい...
発言  kanabun  - 14/8/12(火) 23:23 -

引用なし
パスワード
   ▼佐藤 小次郎 さん:

ht tp://moug.net/faq/viewtopic.php?t=70050
でコメントしましたように、
何をしようとしているのか、日本語で説明を!お願いします。

  j = Cnt(0)
  Do Until j = 0

Cnt ってなんですか?
Cnt(0) には 通常何が入っているのですか?
・ツリー全体表示

【75965】exvel2013でのFileSearchの代替について
質問  佐藤 小次郎 E-MAIL  - 14/8/12(火) 23:15 -

引用なし
パスワード
   excel2003〜excel2013にしましたら
それまで使っていたツールが動かなくなりました。

FileSearchが使えません。
FilesystemObjectを使えばよいそうなのですが
どのように直せばよいのか分かりません。

下記のものなのですが、お時間を頂ける方がおられましたらお教えください。

誠に恐縮ですが、よろしくお願いいたします。


Function File_Search() ' ファイル検索
  Open_SW = "OK"
  Set fs = Application.FileSearch
  j = Cnt(0)
  Do Until j = 0
    With fs
     .LookIn = Left(TL_Path, Cnt(j)) '検索するフォルダのセット
     .SearchSubFolders = True 'フォルダ配下のフォルダ内も検索する
     .Filename = WK_Name '検索するファイル名のセット
      
     '検索出来たファイル数が0以下のときは、エラー
     If (.Execute < 1) And (j = 1) Then
       MsgBox "【 " & WK_Name & " 】 対象ファイルなし" _
         & vbCr & vbCr _
         & "対象ファイルを準備後、処理して下さい。"
       Open_SW = "Error"
       Exit Function
     
     ElseIf .Execute > 0 Then '検索出来たファイル数が1以上のとき
       For i = 1 To .Execute
         '検索出来たファイル中に、同名ファイルが存在した場合、
         'フォルダのパスをセット
         If "\" & .Filename = Right(.FoundFiles(i), 17) Then
           WK_Path = .FoundFiles(i)
           Exit Do
         End If
       Next
     End If
    End With
    j = j - 1
  Loop
End Function

書き換えをお願いできないでしょうか。
よろしくお願いいたします。
・ツリー全体表示

【75964】Re:フォルダ内での処理につきまして
お礼  マリモ  - 14/8/12(火) 9:08 -

引用なし
パスワード
   ▼γ さん:
>「ベースシート」の読み込み予定のところに
>なんらかのものが書き込まれているからですね。
>何も書き込まれていなければそうはなりません。
何も知らずにすみませんでした。

>対応策ですが、
>   .RefreshStyle = xlInsertDeleteCells
>のことろを  
>   .RefreshStyle = xlOverwriteCells
>と書き換えてください。
昨日書き換えたところ、
.Refresh BackgroundQuery:=False
の部分がデバック表示が出てしまい悩んでいましたが
今朝実行したところ、上手く処理できました。

>> wsの意味がよく分かりませんが
>> 調べてみます。
>私の提示したコードに出てきます。
>それぞれのワークシートオブジェクトにつけた変数名です。
>Dim ws As Worksheet
>・・・
>Set ws = ActiveSheet
>
>提示されたコードは使うことがまず先ですが、
>よく読んで理解するようにしてください。
>
># 上記の問題は先ほどのコード修正で対応できるはずですから、
># wsを使ってシートの特定列を削除する必要性はなくなるはずですけど。

最後まで色々とお教えいただき、ありがとうございました。
お教えいただいたコードを元に
今後理解を深めて参りたいと存じます。

貴重なお時間を割いてくださいましたお心遣いに感謝いたします。
・ツリー全体表示

【75963】Re:新規ブックの保存に時間がかかる
発言  まめ  - 14/8/12(火) 8:47 -

引用なし
パスワード
   ▼γ さん:
お世話になっております。

昨日色々試してみたところ、γさんの仰るように
提示したコード部分だけでは1秒以内に終了することがわかりました。

また、マクロの全体的な内容としては
1.複数のCSVに対して 処理を行い、その計算結果を配列に格納しておく
2.新規エクセルファイルを開き、先ほどの配列をペースト、書式などを整える
3.名前を付けて保存

なのですが、1.の部分のみでは1.5秒くらいであることもわかっています。
2.3.に1秒かからないわけですから、合わせれば2秒程度で終わるはずなのですが
組み合わせるとなぜか保存に9秒以上かかるようなのです。

Timer関数を使って計測した時間が、レスNo2の内容になります。
以上、よろしくお願い致します。
・ツリー全体表示

【75962】Re:新規ブックの保存に時間がかかる
発言  γ  - 14/8/11(月) 19:20 -

引用なし
パスワード
   >何卒ご容赦いただければ幸いです。
いえいえ、ご自分に返ってくる話ですので、
私には影響がありません。

私が試したところでは、さほど時間はかかりません。1秒以内です。

コードの所々に、Timer関数を使って、経過時間をイミディエイト・ウインドウに
書き出し、どこで時間が掛かっているか、さらに詳しくみてみてはいかがですか?
まずは、ファイル保存までと、保存に要する時間をわけて見ては?
・ツリー全体表示

【75961】Re:新規ブックの保存に時間がかかる
発言  まめ  - 14/8/11(月) 18:52 -

引用なし
パスワード
   ▼γ さん:
ご回答いただき誠にありがとうございます。

ご指摘最もです、省略しすぎてしまい大変申し訳ありません。
下記にコードを記載させていただきます。


Dim myBook as String
Dim データ(1 to 10) as String
Dim n as long
Dim bookname as string
Dim myValue as variant
Dim Filepath as string
Dim Savepath as string
Dim Savename as string

'ブックを作成
Workbooks.Add
myBook = ActiveWorkbook.Name

’データ(i)に格納された文字列をペースト
For i = 1 To 10
  Workbooks(myBook).Sheets(1).Cells(1, i) = データ(i)
Next i

’体裁を整える
Cells.ColumnWidth = 10
With Selection
  .HorizontalAlignment = xlCenter
End With
ActiveWindow.Zoom = 50
With Range("A1:K1").Interior
  .ColorIndex = 15
End With
ActiveWindow.DisplayGridlines = False

’項目名、配列をペースト
For n = 1 To 10
  Workbooks(myBook).Sheets(1).Cells(n + 1, 1) = bookname(n)
  Workbooks(myBook).Sheets(1).Range(Cells(n + 1, 2), Cells(n + 1, 13)) = myValue(n)
Next n

Filepath = ThisWorkbook.Path & "\"

Savepath = Filepath & "処理\" & Format(Date, "yyyymmdd")
Workbooks(myBook).Close SaveChanges:=True, Filename:=Savepath

以上になります。
長すぎて一部省略していますので、まだ不備があるかもしれませんが
何卒ご容赦いただければ幸いです。

以上、よろしくお願いいたします。
・ツリー全体表示

【75960】Re:新規ブックの保存に時間がかかる
発言  γ  - 14/8/11(月) 18:31 -

引用なし
パスワード
   > 特別なことは行っていないのですが、該当部分のコードを
> 参考までに記載させていただきます。
>
> Workbooks.Add
> myBook = ActiveWorkbook.Name
> Savepath = Filepath & "処理\" & Format(Date, "yyyymmdd")
> Workbooks(myBook).Close SaveChanges:=True, Filename:=Savepath
新しくブックを作成して、それをそのまま閉じるだけなので、
保存もされませんし、何が問題となっているのか理解できません。
もう一度内容を確認してください。

なお、提示するなら、きちんと変数の宣言もつけて提示しましょう。

また、保存なら保存で、正々堂々と保存系のメソッドを使ったほうが
いいように思います。
・ツリー全体表示

【75959】Re:新規ブックの保存に時間がかかる
発言  まめ  - 14/8/11(月) 16:49 -

引用なし
パスワード
   マクロの全要としましては、以下の通りです。
1.複数のCSVに対して 処理を行い、その計算結果を配列に格納しておく
 ※配列の大きさ・数ともに小さいです。
2.新規エクセルファイルを開き、先ほどの配列をペースト、書式などを整える
3.名前を付けて保存
 ※保存ファイルは10KB程度の小さいものです。

今ちゃんと時間を測ってみたところ
1.の部分にかかる時間は1.5秒
2.の部分にかかる時間は1.5秒
3.の部分にかかる時間は6.6秒 程度でした。

しかし2.・3.の部分のコードのみ新規ブックにコピーペーストして実行すると
1秒かからずに処理が終了します。

ループなどを使うようにはしていますが、全体的に長いコード
であるのが原因なのでしょうか。
・ツリー全体表示

【75958】新規ブックの保存に時間がかかる
質問  まめ  - 14/8/11(月) 15:38 -

引用なし
パスワード
   いつも大変お世話になっております。

新規ブックの作成→編集→保存というマクロを作っているのですが
どうも保存の段階でとても時間がかかっているようです。

ステップ実行であれば一瞬で保存できるのに、
通しでマクロ実行すると保存に3秒近くかかってしまいます。

ちょっとしたタイムロスではありますが、マクロ使用回数が多いため
気になってしまいます。

ブックの保存に時間がかかるのは仕方ないことなのでしょうか。
アドバイス等よろしくお願いいたします。

--------------------------------------------------
特別なことは行っていないのですが、該当部分のコードを
参考までに記載させていただきます。

Workbooks.Add
myBook = ActiveWorkbook.Name
Savepath = Filepath & "処理\" & Format(Date, "yyyymmdd")
Workbooks(myBook).Close SaveChanges:=True, Filename:=Savepath
・ツリー全体表示

【75957】Re:フォルダ内での処理につきまして
発言  γ  - 14/8/11(月) 9:51 -

引用なし
パスワード
   「ベースシート」の読み込み予定のところに
なんらかのものが書き込まれているからですね。
何も書き込まれていなければそうはなりません。

対応策ですが、
   .RefreshStyle = xlInsertDeleteCells
のことろを  
   .RefreshStyle = xlOverwriteCells
と書き換えてください。

> wsの意味がよく分かりませんが
> 調べてみます。
私の提示したコードに出てきます。
それぞれのワークシートオブジェクトにつけた変数名です。
Dim ws As Worksheet
・・・
Set ws = ActiveSheet

提示されたコードは使うことがまず先ですが、
よく読んで理解するようにしてください。

# 上記の問題は先ほどのコード修正で対応できるはずですから、
# wsを使ってシートの特定列を削除する必要性はなくなるはずですけど。
・ツリー全体表示

【75956】Re:フォルダ内での処理につきまして
発言  マリモ  - 14/8/11(月) 9:16 -

引用なし
パスワード
   ▼γ さん:
>>すみません。できればE列以降の場所を変更したくないので
>>この動作の後にD列〜F列を削除したいのですが、
>>お教えいただけますでしょうか。
>
>ところで、
>これは、ABC列にテキストファイルを挿入したことで、
>もともとのABC列が右にずれているということですか?
>私のところではそうはならないですが。
>何らかの設定によって、そうなることがあるのでしょうか。
>事実を確認したいですね。
元々のABC列が右へずれてしまい、A1に入力してあったのが
D1に表示されています。
元々のE列はH列に表示されています。
ですので、最後に後からできてしまった列を削除できないかと
質問させていただいた次第でございます。

とはいえ、もう少し自分で考えてみます。
ありがとうございました。
・ツリー全体表示

【75955】Re:フォルダ内での処理につきまして
発言  マリモ  - 14/8/11(月) 9:08 -

引用なし
パスワード
   ▼γ さん:
>こんにちは。
>
>二つの意味で疑問があります。
>
>(1)ひとつは、内容の点。
>> ベースシートのE列以降に関数を入れてありまして、
>> 速度の計算を同じように揃えたいのが目的です。
>という発言と、
>> できればE列以降の場所を変更したくないので
>> この動作の後にD列〜F列を削除したいのですが
>と言う発言の関係はどうなるのですか?
>E列に入っている関数は削除していいのですか?
削除はしないで欲しいです。

>(2)もうひとつは、リクエストすれば回答が得られる、
>と勘違いしていませんか?という点。
申し訳ございません。
依存しすぎていたかもしれません。

>削除なのか、消去なのか知りませんが、
>それはご自分では書けないのですか?
>その動作をマクロ記録して、
>ただ、シートをwsで特定するだけだと思いますが。
wsの意味がよく分かりませんが
調べてみます。

>私の提示したコードが理解できないようでしたら、
>ステップ実行しながら、どんな動作をするか、
>途中で変数はどのように変わるか、を調べて見て下さい。
>
>結果を検証するだけでなく、内容を理解してください。
>また、今回の追加の仕様をご自分で考える事は、
>理解を進める絶好の材料だと思います。
勉強していきたいと思います。
・ツリー全体表示

【75954】Re:pdfの範囲指定印刷について
お礼  塾講師  - 14/8/11(月) 8:22 -

引用なし
パスワード
   様々な方法でしてみます。
ありがとうございました!
・ツリー全体表示

【75953】Re:重複行の削除(複数列での比較)
お礼  こなつ  - 14/8/10(日) 14:18 -

引用なし
パスワード
   ▼γ さん:
>もし、Excel2007以降であれば、RemoveDuplicatesが使えます。
>Sub test()
>  ActiveSheet.Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6)
>End Sub
>
># Excelのバージョンを書いたほうがいいですよ。
># 私は、初めてRemoveDuplicatesを使ってみました。
># 自信ありませんが、たぶんOKかと。

重ね重ね ありがとうございました。
バージョンを書くのを忘れていました。
Excel2007です。

 早速、試してみます。
・ツリー全体表示

【75952】Re:重複行の削除(複数列での比較)
発言  γ  - 14/8/10(日) 11:26 -

引用なし
パスワード
   もし、Excel2007以降であれば、RemoveDuplicatesが使えます。
Sub test()
  ActiveSheet.Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6)
End Sub

# Excelのバージョンを書いたほうがいいですよ。
# 私は、初めてRemoveDuplicatesを使ってみました。
# 自信ありませんが、たぶんOKかと。
・ツリー全体表示

【75951】Re:pdfの範囲指定印刷について
発言  カリーニン  - 14/8/10(日) 11:26 -

引用なし
パスワード
   PDF切り分けソフトとしては私は↓で紹介されているソフトを使わせてもらっています。

ht tp://nwpct1.hatenablog.com/entry/2013/12/14/192914

このソフトをインストールしてコマンドプロンプトから実行します。
※私はエクセルVBAからコマンドプロンプトにコマンドを渡しています。

このソフトの使用方法やVBAからのコマンドの渡し方については申し訳ないですが
書くつもりはありません。
・ツリー全体表示

【75950】Re:pdfの範囲指定印刷について
発言  カリーニン  - 14/8/10(日) 11:16 -

引用なし
パスワード
   Acrobatがあればお望みのことは出来るようですが、Adobe Readerですと難しいようです。

他サイトの参考スレッドです。
ht tp://www.excel.studio-kazu.jp/kw/20120427163339.html

次善の策として、↓のような処理が考えられます。PDF切り分けソフトにもよりますが、マクロ
での自動化も可能かと思います。

1.PDF切り分けソフトなどでPDFファイルから特定のページ範囲を切りだして
 別のPDFファイルとして保存

2.保存したPDFファイルを印刷

3.印刷終了を待つか、次回の実行時に保存したPDFファイルを削除

他にもいい方法があると思いますので識者のレスをお待ち下さい。
・ツリー全体表示

【75949】Re:重複行の削除(複数列での比較)
お礼  こなつ  - 14/8/10(日) 10:17 -

引用なし
パスワード
   ▼γ さんへ

 早速のご回答本当にありがとうございました。

 目から鱗が落ちるでした。

 マクロにこだわって 頭が固まっていました。

 また、宜しくお願いします。
・ツリー全体表示

【75948】Re:pdfの範囲指定印刷について
質問  塾講師  - 14/8/10(日) 10:10 -

引用なし
パスワード
   閲覧ソフトは Adobe reader11 になります。
Acrobat はありません。

宜しくお願いします。
・ツリー全体表示

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