Excel VBA質問箱 IV

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

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


4547 / 13646 ツリー ←次へ | 前へ→

【55993】selectしないで処理するには cn1 08/5/29(木) 0:20 質問[未読]
【55994】Re:selectしないで処理するには galikun 08/5/29(木) 6:09 回答[未読]
【55995】Re:selectしないで処理するには cn1 08/5/29(木) 10:05 発言[未読]
【55996】Re:selectしないで処理するには ponpon 08/5/29(木) 10:24 発言[未読]
【55998】Re:selectしないで処理するには cn1 08/5/29(木) 11:02 質問[未読]
【55999】Re:selectしないで処理するには kanabun 08/5/29(木) 11:05 発言[未読]
【56000】Re:selectしないで処理するには cn1 08/5/29(木) 11:19 発言[未読]
【56002】Re:selectしないで処理するには kanabun 08/5/29(木) 12:00 発言[未読]
【56005】Re:selectしないで処理するには cn1 08/5/29(木) 12:20 発言[未読]
【56011】Re:selectしないで処理するには kanabun 08/5/29(木) 15:07 発言[未読]
【56023】Re:selectしないで処理するには cn1 08/5/29(木) 20:19 発言[未読]
【56025】Re:selectしないで処理するには cn1 08/5/29(木) 20:47 お礼[未読]

【55993】selectしないで処理するには
質問  cn1  - 08/5/29(木) 0:20 -

引用なし
パスワード
   下記コードにおいて
セレクトしないで消去する方法を教えて下さい。
全て結合セルです。
Range("H10:Q11,Y10:AH11,・・・).ClearContents とすると
Error"結合された一部を変更することはできません"
下記なら問題なく動きますが・・・
よろしくお願いします。

Sub 消去()
  ActiveSheet.Unprotect
  Application.EnableEvents = False
  Range("H10:Q11,Y10:AH11,H12:AM13,J14:J15,Y15:AF15,Z16:AC16,
      AF16:AI16,M18:Y18,AD18:AI18,N23:AH23,H24:Q24,Y24:AH24,L27:AD27,
   M29:N29,Q29:AH29,M30:AH31,M32:W32,AD32:AH32,O33:Y34,H35:AI38")_
  .Select
  Selection.ClearContents

  Application.Goto Reference:="R9C2"
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
  ActiveSheet.EnableSelection = xlUnlockedCells
  Application.EnableEvents = True
End Sub

【55994】Re:selectしないで処理するには
回答  galikun  - 08/5/29(木) 6:09 -

引用なし
パスワード
   ▼cn1 さん:
おはようございます。

Range("H10:Q11,Y10:AH11,・・・).ClearContents の代わりに

selectしないで
Range("H10:Q11,Y10:AH11,・・・).value="" を使ってみてはどうでしょうか?

【55995】Re:selectしないで処理するには
発言  cn1  - 08/5/29(木) 10:05 -

引用なし
パスワード
   ▼galikun さん:
ありがとうございます。
>Range("H10:Q11,Y10:AH11,・・・).ClearContents の代わりに
>
>selectしないで
>Range("H10:Q11,Y10:AH11,・・・).value="" を使ってみてはどうでしょうか?
.value=""でうまくいきました。ができれば

With ステートメントを使うに方法が知りたいのですが
どのような記述にすればいいのですか?
With ActiveSheet
  .Range("H10:Q11,Y10:AH11,・・・)
  .ClearContents
End With
↑これだとエラーになってしまいます
よろしくお願いします。

【55996】Re:selectしないで処理するには
発言  ponpon  - 08/5/29(木) 10:24 -

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

>.value=""でうまくいきました。ができれば
>
>With ステートメントを使うに方法が知りたいのですが
>どのような記述にすればいいのですか?
>With ActiveSheet
  .Range("H10:Q11,Y10:AH11,・・・).ClearContents
>End With



>With ActiveSheet.Range("H10:Q11,Y10:AH11,・・・)
   .ClearContents
>End With

ですが、Withを使う意味が・・・

【55998】Re:selectしないで処理するには
質問  cn1  - 08/5/29(木) 11:02 -

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

>>With ActiveSheet
>  .Range("H10:Q11,Y10:AH11,・・・).ClearContents
>>End With
>
>か
>
>>With ActiveSheet.Range("H10:Q11,Y10:AH11,・・・)
>   .ClearContents
>>End With
↑2つの方法で実行してみましたが"結合されたセルの一部を変更できません"
と出てしまいます。
結合セルの問題なのでしょうか?
解決策はありませんか
よろしくお願いします。
>
>ですが、Withを使う意味が・・・
↑意味がありませんか?

【55999】Re:selectしないで処理するには
発言  kanabun  - 08/5/29(木) 11:05 -

引用なし
パスワード
   ▼cn1 さん:
よこからすみません。

>↑2つの方法で実行してみましたが"結合されたセルの一部を変更できません"
>と出てしまいます。

結合セルを含んでアドレス指定したら どうですか?

【56000】Re:selectしないで処理するには
発言  cn1  - 08/5/29(木) 11:19 -

引用なし
パスワード
   ▼kanabun さん:
ありがとうございます。
>>↑2つの方法で実行してみましたが"結合されたセルの一部を変更できません"
>>と出てしまいます。
>
>結合セルを含んでアドレス指定したら どうですか?
↑これがよく解らないのですが
教授お願いします。

【56002】Re:selectしないで処理するには
発言  kanabun  - 08/5/29(木) 12:00 -

引用なし
パスワード
   ▼cn1 さん:
>>結合セルを含んでアドレス指定したら どうですか?
>↑これがよく解らないのですが

う〜ん、そのとおりなんですが(ToT)

今、指定しているセルアドレスだと、正味のアドレスだから、
それを結合セルを含んだアドレスに拡張したら?
ということなんですが?

拡張後のアドレスは こんな風にしてイミディエイト・ウィンドウに
得ることができます。

 Dim ss As String
 ss = "H10:Q11,Y10:AH11,H12:AM13,J14:J15,Y15:AF15,Z16:AC16,"
ss = ss & "AF16:AI16,M18:Y18,AD18:AI18,N23:AH23,H24:Q24,Y24:AH24,L27:AD27,"
ss = ss & "M29:N29,Q29:AH29,M30:AH31,M32:W32,AD32:AH32,O33:Y34,H35:AI38"
  Range(ss).Select
  Debug.Print Selection.Address(0, 0)

【56005】Re:selectしないで処理するには
発言  cn1  - 08/5/29(木) 12:20 -

引用なし
パスワード
   ▼kanabun さん:
ありがとうございます。
イミディエイト・ウィンドウで得ることはできましたが
これをどのようにコードに反映したらいいのか?
ふぅ〜初心者なので良く理解できていません。


>う〜ん、そのとおりなんですが(ToT)
>
>今、指定しているセルアドレスだと、正味のアドレスだから、
>それを結合セルを含んだアドレスに拡張したら?
>ということなんですが?
>
>拡張後のアドレスは こんな風にしてイミディエイト・ウィンドウに
>得ることができます。
>
> Dim ss As String
> ss = "H10:Q11,Y10:AH11,H12:AM13,J14:J15,Y15:AF15,Z16:AC16,"
>ss = ss & "AF16:AI16,M18:Y18,AD18:AI18,N23:AH23,H24:Q24,Y24:AH24,L27:AD27,"
>ss = ss & "M29:N29,Q29:AH29,M30:AH31,M32:W32,AD32:AH32,O33:Y34,H35:AI38"
>  Range(ss).Select
>  Debug.Print Selection.Address(0, 0)

【56011】Re:selectしないで処理するには
発言  kanabun  - 08/5/29(木) 15:07 -

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

>イミディエイト・ウィンドウで得ることはできましたが
>これをどのようにコードに反映したらいいのか?

現在のセルアドレス ↓
Range("H10:Q11,〜〜, O33:Y34,H35:AI38").ClearContents

を、イミディエイト・ウィンドウに出力されたアドレスに書き換えるだけですが?

【56023】Re:selectしないで処理するには
発言  cn1  - 08/5/29(木) 20:19 -

引用なし
パスワード
   ▼kanabun さん:
ありがとうございます。
下記のようにイミディエイト・ウィンドウに出力されたアドレスに
書き換えましたがエラーは一緒でした?
出力されたアドレスは下記です
H10:Q11,Y10:AH11,H11:AM14,I14:AH15,I15:AH15,I16:AC16,AF16:AI16,J18:Y18,AC18:AI18,I23:AH23,
H24:Q24,Y24:AH24,I27:AD27,M29:N29,Q29:AH29,I30:AH31,I32:AH32,I32:AH32,I33:AH34,H35:AI38
なにか違うのでしょうか?
よろしくお願いします。
>現在のセルアドレス ↓
>Range("H10:Q11,〜〜, O33:Y34,H35:AI38").ClearContents
>
>を、イミディエイト・ウィンドウに出力されたアドレスに書き換えるだけですが?
Range("H10:Q11,Y10:AH11,H11:AM14,I14:AH15,I15:AH15,I16:AC16, AF16:AI16,J18:Y18,AC18:AI18,I23:AH23,H24:Q24,Y24:AH24,I27:AD27,
M29:N29,Q29:AH29,I30:AH31,I32:AH32,I32:AH32,I33:AH34,H35:AI38").ClearContents

【56025】Re:selectしないで処理するには
お礼  cn1  - 08/5/29(木) 20:47 -

引用なし
パスワード
   ▼kanabun さん:
お騒がせいたしました
単純ミスで範囲が違っておりました_(_^_)_
お付き合いありがとうございました。
感謝!!!

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