エクセルVBAでブックをクローズする際のセルクリアとコピー方法

このQ&Aのポイント
  • エクセル2002を使用している初心者の方は、エクセルを閉じる際に指定のセルをクリアする方法や、別のシート内のセルの文字を指定のセルにコピーする方法を知りたいです。
  • VBAの書き方は、ThisWorkbookの下にPrivate Sub Workbook_BeforeClose(Cancel As Boolean)と書きます。具体的なコードがわからないとのことです。
  • クリアするセルは、シート名「利用券」のF15、F16、F17、Y16、AO16、AX16です。コピーするセルは、シート名「施設」のセルG6をセルC3にコピーしたいです。
回答を見る
  • ベストアンサー

エクセルVBA ブックのクローズの記入の仕方

エクセル2002を使用している初心者です。 エクセルを閉じる操作をしたときに、指定シートのあるセルをクリアして、 また別のシートについても、そのシート内のあるセルの文字を指定のセルにコピーしたいのです。(コピー先はセルの色を塗りつぶしたり、大きいフォントを使用しているので、その書式は変更せず、文字データだけをコピーしたいのです) このVBAの書き方を教えていただけないでしょうか。 VBAは書き込む場所はThisWorkbookですよね。 VBAの種類は、Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub ですよね。 すみません。この中に入れるコードがわからないのです。 クリアにするセルは、 シート名 利用券 の F15,F16,F17,Y16,AO16,AX16 です。 コピーするセルは、 シート名 施設 の セルG6 を セルC3 にコピーしたいのです。 (セルC3は、セルの色を塗りつぶしてあり、フォントも大きめを指定してあるので、その書式を活かしたままにしたいのです。また、セルC3は入力規則を設定していて、文字入力はできないようになっています。コピーはできましたけど・・・) いろいろ述べてすみません。 どうか教えてください。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • starsip
  • ベストアンサー率36% (22/60)
回答No.3

#1、#2です。 すみません。 お気付きでしょうが、一部間違えました。 >F15,F16,F17,Y16,AO16,AX16  ですから ("AX16,AO16,Y16,F15:H15")  ↓ ("AX16,AO16,Y16,F15:F17") 修正をお願いします。

saitama090
質問者

お礼

細かいところまで気を配っていただき、有難うございました。 大変助かります。 大感謝です。 ありがとうございました。

その他の回答 (2)

  • starsip
  • ベストアンサー率36% (22/60)
回答No.2

追加です。 Private Sub Workbook_BeforeClose(Cancel As Boolean) 'クリア ThisWorkbook.Sheets("利用券").Range("AX16,AO16,Y16,F15:H15").ClearContents 'コピー ThisWorkbook.Sheets("施設").Range("C3").Value = ThisWorkbook.Sheets("施設").Range("G6").Value End Sub 書式には影響しません。

saitama090
質問者

お礼

わー。コピーの方法まで教えていただいて、なんとご親切に。 ありがとうございました。

  • starsip
  • ベストアンサー率36% (22/60)
回答No.1

とりあえず クリアするには Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Sheets("利用券").Range("AX16,AO16,Y16,F15:H15").ClearContents End Sub で、良いかと思います。

saitama090
質問者

お礼

ClearContentsですか。助かりました。 ホッとしました。 大変感謝いたします。

関連するQ&A

  • excel vba 選択されたセルの範囲を別のセル

    excel vba 選択されたセルの範囲を別のセルに書き込みたい。 お世話になっております。 乱筆乱文お許し下さい。 EXCEL VBAについてですが、或るブックを閉じる時(Private Sub Workbook_BeforeClose(Cancel As Boolean))にその時点でACTIVEなsheetの名前を指定シートの指定セルに書き込み、そのブックを開く時(Private Sub Workbook_Open())に指定シートの指定セルの値の名前sheetをACTIVEにすることは出来たのですが、もう一歩進んで、 ブックを閉じる時(Private Sub Workbook_BeforeClose(Cancel As Boolean))にその時点でselectされているcellの範囲(単一セル・複数セル共に、名前がついていたら名前、ついていなければrangeを表す文字列)を指定シートの指定セルに書き込み、そのブックを開く時(Private Sub Workbook_Open())に指定シートの指定セルの値の名前cell範囲をselectするようなことがやりたいのですが、私の検索の仕方が下手で、なかなか出てきません。どなたかご教示下さい。よろしくお願いします。

  • エクセルVBAでセルに色を付けるには

    エクセル2010の質問です。 例えばA列に入力した文字のバイト数が38より多い場合、セルに色を付けたいのです。 条件付き書式で =LENB($A2:$A1048576)>38 でもよかったのですが シート内のデータをクリアすると条件付き書式までクリアされてしまい困っています。 VBAで出来るのが一番なのかなと思っていますが、ご教授お願い致します。

  • Excel VBA

    Excel VBAのテキストを片手に色々(仕事で必要で・・・)試しています。そこで、セルをダブルクリックしたときに実行するマクロを作成してみました。(テキストにしたがって)コピー元シートのA2番地に入力されている文字と同じ文字を、Shieet1の任意のセルをダブルクリックすると自動的に入力されるマクロです。ですが、コピー元の文字だけではなく書式も一緒に反映されるので、任意のセルに書式が設定されている場合、書式が崩れてしまいます。なので、どなたか 文字だけ もしくは 書式だけ を自動実行する方法を教えてください。 なかなか伝わりにくい文章で申し訳ありませんが・・・。宜しくお願いいたします。ちなみに↓↓VBの記述を貼り付けます。 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Cancel = True Worksheets("コピー元").Range("A2").Copy Destination:=Target End Sub

  • エクセルVBAでコピーすると行の高さが低くなる

    いつもお世話になってます。 エクセル2003のVBAで、セルの範囲を指定してコピーすると行の高さが低くなってしまいます。その他の書式は、変化せずうまくコピーできています。以下がプログラムです。 Sub copy_hyou() Worksheets("sheet1").Activate Range("A1:K24").Copy 'セルA1からK24をコピーします。 Range("A25").Select 'A25からペイストします。 ActiveSheet.Paste End Sub どう直せば、行の高さもコピーできるでしょうか? お休み中すみませんがよろしくお願いいたします。

  • エクセル操作について(VBA)

    こんばんは。いつもお世話になってます。 エクセルの操作ですが、 シート1に A1セル 8:10 B1セル 12:05 C1セル 235(B1-A1の分換算) シート2に A1 7:01 B1 7:02 C1 7:03 D1 7:04 …  … ○1 8:10 … … △1 12:05 と入力されているとして、 ○2から△2まで(236セル)、自動的に色がつくようにしたいのですが、 関数や条件付き書式等で対応できるでしょうか? VBAならなんとかできそうですか? よろしくお願いします。

  • Excel2007 フォントの色が変わりません

    旧パソコンExcel2000で作成したbook(表)を、現パソコンに移し、Excle2007で修正をしています。 セル内のフォントの色の変更ができずに、困っています。 なお、この表は月次のものなので、シートをコピーし、日にちを入れなおして使い続けています。 この時の祝日を「赤」にしたセルが、問題のセルです。 やっていみたことは 1.セル内の文字をドラック、新たにフォントの色を指定しても、enterを押すと、元の色になります。。 2.  〃            、「書式の変更」から、色を変更しても、変わりません。 3いったん切り取り、新たに書き直しても、色が変わりません。 4.セルをクリックして「書式と値のクリア」して、書きなおしても変わりません。 唯一変わったのは、「書式のコピー」からですが、この場合は「罫線」コピーされてしまい、線を引きなさなければなりません。 対処方法を、教えてください。

  • エクセルのVBAで、異なるブック間でのコピー&ペースト

    こんばんは。 エクセルのVBAで、異なるブック間でのコピー&ペーストに関しての質問です。 現在アクティブになっているシートのB4セルをコピーして、 現在開いているシートのブックとは異なる特定の ブック(”Book1")の特定のシート(”Sheet1”)のC5セルに貼り付けたい場合、 ●●●の部分に何と表現すればよいか教えてください。 Range("B4").Copy Destination:=●●● よろしくお願いいたします。

  • エクセルVBAで選択していないシートのセルコピー

    エクセルVBAで質問させてください。 現在選択していないシートから、セルの書式ごとコピーして貼り付けたいのです。 たとえば Sheets(1).Range(Cells(1, 1), Cells(4, 1)).Copy Sheets(2).Range("A1") 等とすると、Sheets(2)が選択されている状態だとエラーになってしまいます。 おそらく、Copyメソッドというのは、選択されているシートにのみ有効だからなのではないか、と思いますが、セルの値だけでなくフォントその他の書式を、別のシート(現在アクティブでない)から持ってくる方法はありますか?

  • エクセル2003 VBAなのですが

    エクセル2003 VBAなのですが   A   B    C    D    E    F 1 あ   い   う   お   う   123 2 お   さ   え   あ   お   お 3 あ   い   え   お   え   888 上記のような表があるときに 3個以上同じ文字がある場合にセルに色をつけていきたい状況です 上記表でいうと『あ』と『え』と『お』のセルに色をつけたいのです セルには文字列のほかに数字も入っている状況です 単純にCtrl+Fで検索をして『すべて検索』で 出てきたセル全部に色をつける。 それをA1から文字があるところ全部やる と言った事をマクロでやりたいと思っております。 皆様よろしくお願いいたします。

  • エクセルVBAでブックを開きたいのですが、

    エクセルVBAでブックを開きたいのですが、 アクティブシートを別のブックに移動させたいのですが、 まず、目的のブックを開く → 移動させたいシート名を右クリック → 移動またはコピー を選択 → 移動先ブック を選択  というふうにしようと思っていますが、 Workbooks.Open Filename:= _ "C:\Documents and Settings\YUMIKO\My Documents\YYYY.xls" のようにファイル名を入れると開くことができました。 が、   Workbooks.Open Filename:= _ "C:\Documents and Settings\YUUKORON\My Documents\Range("F1").Value.xls" のように、アクティブシートの セルF1にファイル名を入れて、開きたいのですが、どうしても開くことができません。いろいろ調べて試しましたが、無理でした。 基本的にマクロで記録で作っている初心者です。 回答よろしくお願いします。

専門家に質問してみよう