重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

エクセル2003 ワード2003を使用しています。

表題の通りですが、
エクセルやワードを開いた状態から
一発で削除できますか。
できればショートカットキーで。

よく内容確認して削除するケースあるのですが、
毎回開いて閉じて削除していますが、
ストレスなので開いた状態から削除できたら便利と思うのですが。

どうぞ宜しくお願いします。

A 回答 (6件)

こんにちは。



返事が遅くなりました。その理由は、Word削除のマクロが、自分が思っていた反応と、まったく違っていたからです。ショートカットの反応も違いました。今回、もう少し、反応が速くならないのかなって思いました。それでも、一応、Wordの方も、それぞれのフォルダの中身を、この機に整理しました。本当は、htaファイルやwsf で作ると、便利だろうなって思いましたが、今は、もう少し技術が足りません。

-------------------------------------------

>「プレビューの図を保存する」というのが
>エクセルのプロパティを開いてもないのですが、
>こちらもし良かったら教えてもらえませんでしょうか。

これは、後からで、全部変更ることも可能なのですが、そのまま保存してしまうと、タイムスタンプが変わってしまうので、今後の問題にしたほうがよいです。

二種類の設定が必要です。

今は、Excel 2003 だけですが、Wordも同様です。

メニュー--ファイル--プロパティ--ファイルの概要--
「プレビューの図を保存する」のチェックを入れる。

ツール--オプション--全般--
「保存時にプロパティを確認する(P) のチェックを入れる
ということです。

こうすると、画像が保存されて、「ファイルを開く」ダイアログ(プレビューモード)やエクスプローラで、その中身を確認にして、削除することが可能です。

'=========================================
マクロ編
以下は、WordのVBAのモジュールに貼りつけてください。
本当は、特殊なツールを使うと、Word(Excelを含む)はその中身を開かずに見れるのですが、それを設定してもらうこと自体が、掲示板で教えるには、少し荷が重いような気がしました。そのツールは、" xdoc2txt.ocx " というものです。(参照URLは下段に)

以下は、コントロールツールのボタンに設定してください。
最初から、ThisDocument に入れて作ればよかったのですが、標準モジュールで作り始めてしまったので、このようなスタイルになってしまいました。

'=========================================
Private Sub CommandButton1_Click()
Call WordFileDeletePro
End Sub

Private Sub CommandButton2_Click()
 Call DeleteDoc
End Sub

'=========================================
Dim FileName As String
Dim fName As String
Sub WordFileDeletePro()
 Dim fNames As Variant
  With Application.FileDialog(msoFileDialogFilePicker)
    .Filters.Add "Wordファイル", "*.doc", 1
    .Filters.Add "Wordファイル", "*.doc?", 2
    .Show
    Set fNames = .SelectedItems
  End With
  If fNames.Count = 0 Then Exit Sub
  FileName = fNames(1)
  fName = Mid(FileName, InStrRev(FileName, "\") + 1)
  If fName Like "$*.doc" Then
    If MsgBox(fName & "はそのまま削除します。", vbInformation + vbOKCancel) = vbOK Then
      Kill FileName
      MsgBox "削除しました。", vbExclamation
      Exit Sub
    Else
      MsgBox "中止しました。", vbExclamation
      Exit Sub
    End If
  End If
  On Error Resume Next
  Documents.Open FileName, , True
  On Error GoTo 0
  If ThisDocument.FullName = FileName Then
    MsgBox "自ブックは、削除対象とすることが出来ません。", vbExclamation
    Exit Sub
  End If
  If MsgBox(fName & "を削除してよろしいですか?" & vbCrLf & _
    "後で削除する場合は、別のボタンで削除してください。", vbQuestion + vbOKCancel) = vbOK Then
     Call DeleteDoc
  Else
    ThisDocument.Activate
  End If
End Sub
Sub DeleteDoc()
  Dim objFS As Object
  On Error Resume Next
  Set objFS = CreateObject("Scripting.FilesystemObject")
  If fName = "" Then
    MsgBox "ファイル名取得に失敗しています。" & vbCrLf & _
    "もう一度やり直してください。", vbExclamation
    Exit Sub
    Set objFS = Nothing
  End If
  Documents(fName).Close False
  objFS.DeleteFile fName
  If Err.Number > 0 Then
    MsgBox "ファイル削除に失敗しました。", vbExclamation
  Else
    MsgBox fName & "の削除に成功しました。", vbInformation
    fName = ""
    FileName = ""
  End If
  On Error GoTo 0
End Sub

参考URL:http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html
「エクセル ワード 開いた状態から一発で削」の回答画像5
    • good
    • 0

こんにちは。


実害はないのですが、#5の修正します。

Sub WordFileDeletePro()から、
15行前後に
'      MsgBox "削除しました。", vbExclamation
とありますが、
      MsgBox "削除しました。", vbInformation
としてください。
    • good
    • 0
この回答へのお礼

Wendy02さん

本当に有り難うございます。
集中してやってみる時間がなくてお礼遅れてしまいすみません。
色々と勉強になり参考になり、
ストレスから解消されそうです。
どうも有り難うございました。

お礼日時:2010/02/20 08:04

#3 で、今、表題をみたら、Wordもありましたが、忘れていました。

Wordに関しては、Excelと違って、Documentオブジェクトは複数があるわけではないので、別な方法があります。その件は、ご質問者さんの応対があってから、考えたいと思います。

この回答への補足

Wendy02さん

恐れ入ります。もしお時間ありましたら、
こちらも教えて頂けませんでしょうか。
どうぞ宜しくお願い致します。

補足日時:2010/02/12 12:47
    • good
    • 0

こんばんは。



たぶん、内容を確認して削除しているのだと思います。
日ごろ、削除させるためにプロパティで、「プレビューの図を保存する」という表示をさせるようにしておけば、「ファイルを開く」ダイアログで、その画面を見ながら削除できるのです。

それ以外の方法ということで、ファイラーが良いかと思いましたが、Vector で数個を調べてみましたが、Excelファイルの削除を目的とする良いツールがありませんでした。どれも不向きです。

そこで、VBAのファイルオープンダイアログを組み合わせて、ReadOnlyで開いて、削除するという方法もあります。以下はサンプルですが、これでも、十分にフォルダ内部の整理は可能です。フォームのボタンに取り付けると便利です。

本当は、UserForm で作ったほうがよいのですが、ユーザーさん自身では、組み込みが難しいので、簡単なものにしました。私自身で、十数個のファイルを削除してみました。

登録名「ExcelFileDeletePro」
'-------------------------------------------
使い方:ボタンをクリックすると、ファイルダイアログが開きますので、それでブックを開きます。ReadOnly で開きますので、そのまま、削除しますか? と聞いてきますので、OK をクリックすれば削除されます。しかし、シート全体を調べたいと思ったら、Cancel をクリックしてください。

調べた後に、削除するなら、Ctrl + F2 をクリックすると、ブックは閉じて削除されます。


'標準モジュール
'-------------------------------------------
'Option Explicit

Dim SetKeyFlg As Boolean
Dim fileName As Variant
Dim fName As String
Sub ExcelFileDeletePro()
  Dim Wb As Workbook
  If SetKeyFlg = False Then
    Call SetKey
    SetKeyFlg = True
  End If
  fileName = Application.GetOpenFilename("Excel(*.xls),*.xls", 1, "ファイル名取得")
  If VarType(fileName) = vbBoolean Or fileName = "" Then Exit Sub
  If ThisWorkbook.FullName = fileName Then
    MsgBox "自ブックは、削除対象とすることが出来ません。", vbExclamation
    Exit Sub
  End If
  Set Wb = Workbooks.Open(fileName, , True)
  fName = Wb.Name
  If MsgBox(Wb.Name & "を削除してよろしいですか?" & vbCrLf & _
    "後でCtrl + F2 のショートカットでも削除出来ます。", vbQuestion + vbOKCancel) = vbOK Then
    Call DeleteWb
    On Error Resume Next
    If ActiveWorkbook.FullName <> ThisWorkbook.FullName Then
     ActiveWorkbook.Close False
    End If
    On Error GoTo 0
  End If
End Sub
Private Sub SetKey()
 Application.OnKey "^{F2}", "DeleteWb"
End Sub
Private Sub DeleteWb()
  Dim objFS As Object
  On Error Resume Next
  Set objFS = CreateObject("Scripting.FilesystemObject")
  objFS.DeleteFile fName
  If Err.Number > 0 Then
    MsgBox "ファイル削除に失敗しました。", vbExclamation
  Else
    MsgBox fName & "の削除に成功しました。", vbInformation
  End If
  If ActiveWorkbook.Name <> ThisWorkbook.Name Then
    ActiveWorkbook.Close False
  End If
  On Error GoTo 0
End Sub
Sub Auto_Close()
 Application.OnKey "^{F2}"
End Sub
    • good
    • 0
この回答へのお礼

Wendy02さん

大変丁寧で詳しい解説どうも有り難うございます。
VBAできました。すごいですね!感動しました。
有り難うございます。
上の「プレビューの図を保存する」というのが
エクセルのプロパティを開いてもないのですが、
こちらもし良かったら教えてもらえませんでしょうか。
どうぞ宜しくお願いします。

お礼日時:2010/02/12 12:46

ごめんなさい、この文から何を削除したいのかわからないのですが・・・

この回答への補足

nza49739さん
すみません。説明不足でした。
このファイル自身を削除したいという意味でした。
どうも難しそうですね。。。

補足日時:2010/02/12 05:27
    • good
    • 0

何を削除したいのかが書かれていませんが…、


その開いているファイル自身を削除したいのなら「無理」です。

※OSは一応マルチタスクで動いていますから削除しようとします。
※今、自分で開いているので削除しようとしてもエラーになります。
※「別のユーザがアクセスしている~」のようなエラーが出るはずです。
※この「別のユーザ」とは、あなた自身のことです。
    • good
    • 0
この回答へのお礼

edomin7777さん
ご回答ありがとうございます。
ファイル自身を削除したいのです。
無理ですか。。
結構できたら便利な気がしますが、、、
残念です。
有り難うございました。

お礼日時:2010/02/12 05:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!