Excel VBA質問箱 IV

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

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


803 / 13645 ツリー ←次へ | 前へ→

【78139】ファイルの削除 世田谷 16/4/21(木) 15:04 質問[未読]
【78141】Re:ファイルの削除 β 16/4/21(木) 17:25 発言[未読]
【78233】Re:ファイルの削除 りった 16/6/1(水) 19:12 回答[未読]

【78139】ファイルの削除
質問  世田谷  - 16/4/21(木) 15:04 -

引用なし
パスワード
   123456.XLSファイルと987465.XLS二つを立ち上げて二つ並べて作業しております。
123456.XLSファイルの作業が終了した段階で
下記マクロを実行した場合、987465.XLSを削除したいのですが。
987465.XLS←ファイル名が都度変わります一定ではありません。
宜しくお願いいたします。
(コード)
Range("D9:G10").Select
  With Selection.Font
    .Name = "MS P明朝"
    .Size = 14
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
  End With
  Range("D9:G10").Select

【78141】Re:ファイルの削除
発言  β  - 16/4/21(木) 17:25 -

引用なし
パスワード
   ▼世田谷 さん:

質問です。

1.まず、削除というのは ブックの削除ですか?
 それとも、ブックを閉じるということですか?

2.で、マクロが書かれたブックが 123456.xls ですか?

3.そもそも、このコードで相手にしているブックはどちらですか?

4.このエクセル区画には、この2つ以外のブックは開かれていないのですか?
 であれば、987654.xls の名前を取得することはできますが、ちょっと状況依存になりますね。
 確実なのは、マクロブックの 123456.xls で、ダイアログを出して 987654.xls を選択させて、それを開く。
 開いたそのブックを相手に処理する。これが安全です。

【78233】Re:ファイルの削除
回答  りった  - 16/6/1(水) 19:12 -

引用なし
パスワード
   こういうことですか?

Sub test()
  Dim sFullPath As String
  Dim iWbCnt As Long
  Dim wb As Workbook
  Dim wbDel As Workbook

  iWbCnt = 0
  For Each wb In Workbooks   ' 開いてる全てのワークブックについて処理する
    Select Case wb.Name   ' ワークブックの名前で分岐
    Case "PERSONAL.XLSB"   ' 個人用マクロブックの場合は処理無し
    Case "PERSONAL.XLS"   ' 個人用マクロブックの場合は処理無し(Excel2007以上)
    Case ThisWorkbook.Name  ' 本ファイルと同じ名前の場合
      iWbCnt = iWbCnt + 1
    Case Else
      iWbCnt = iWbCnt + 1
      sFullPath = wb.Path & "\" & wb.Name ' 削除するためにフルパス保持
      Set wbDel = wb
    End Select
  Next

  If iWbCnt <> 2 Then
    MsgBox "ファイルを二つだけ開いた状態で実行してください。"
    Exit Sub
  End If

  '#######################################
  Range("D9:G10").Select
  With Selection.Font
    .Name = "MS P明朝"
    .Size = 14
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
  End With
  Range("D9:G10").Select
  '#######################################

  wbDel.Close False ' ファイルを閉じる
  Kill sFullPath   ' ファイルを削除する

End Sub

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