Excel VBA質問箱 IV

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

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


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

【10468】セルの指定方法 peppu 04/1/28(水) 11:38 お礼
【10469】Re:セルの指定方法 peppu 04/1/28(水) 11:40 質問
【10475】Re:セルの指定方法 Jaka 04/1/28(水) 12:47 回答
【10517】Re:セルの指定方法 peppu 04/1/30(金) 13:33 質問
【10525】Re:セルの指定方法 トランプマン 04/1/30(金) 15:07 回答
【10531】Re:セルの指定方法 peppu 04/1/30(金) 15:57 お礼
【10530】Re:セルの指定方法 Asaki 04/1/30(金) 15:55 回答
【10532】Re:セルの指定方法 peppu 04/1/30(金) 16:00 お礼

【10468】セルの指定方法
お礼  peppu  - 04/1/28(水) 11:38 -

引用なし
パスワード
   セルのE8からI20を指定するにはRange("E8:I20").Selectでできろのですが、8と20ををそれぞれ、変数で指定し、ループでまわしたい場合は、どんなコードを書けばよいのですか?

【10469】Re:セルの指定方法
質問  peppu  - 04/1/28(水) 11:40 -

引用なし
パスワード
   ごめんなさい、↑のは質問ですm(__)m

【10475】Re:セルの指定方法
回答  Jaka  - 04/1/28(水) 12:47 -

引用なし
パスワード
   こんな感じに色々あります。

Range("E" & 変数1 & ":I" & 変数2)
Range(Cells(変数1, "E"), Cells(変数2, "I"))
Range(Cells(変数1, 5), Cells(変数2, 9))
Range(Cells(変数1, 変数2), Cells(変数3, 変数4))

文字列 = "E8:I20"
Range (文字列)

【10517】Re:セルの指定方法
質問  peppu  - 04/1/30(金) 13:33 -

引用なし
パスワード
   Jakaさん、ありがとうございます。すべて試してみたのですが、できませんでした。
ちなみに、現在取り掛かっている作業は、指定した範囲のセルの数値を消すという作業で、

Private Sub CommandButton4_Click()
'計算1で得た表内の数値をクリア'

Dim cellcnt1 As Long
'セル番地のカウント'
Dim cellcnt2 As Long
'セル番地のカウント'
Dim a As Integer

a = Range("C9")
MODORITI = MsgBox("計算1の結果をクリアしますか?", 1, "MSGタイトル")
For cellcnt1 = 9 To a + 9
cellcnt2 = cellcnt1
 If MODORITI = vbOK Then
   Range("C8:C11").Select
   Selection.ClearContents
   Range(Cells(cellcnt1, "E"), Cells(cellcnt2, "I"))
   Selection.ClearContents
 End If
Next cellcnt1

というコードを書いてみました。どこが悪いのか教えていただけますか?あと、同範囲内に引かれた罫線も消したいのですが、それも可能でしょうか?

【10525】Re:セルの指定方法
回答  トランプマン  - 04/1/30(金) 15:07 -

引用なし
パスワード
   Private Sub CommandButton1_Click()

Dim intColumn As Integer '列
Dim intRow As Integer  '行


For intColumn = 5 To 9
  For intRow = 8 To 20
    Cells(intRow, intColumn).Value = ""
    Cells(intRow, intColumn).Borders.LineStyle = xlNone
  Next intRow
Next intColumn

これじゃだめ?

【10530】Re:セルの指定方法
回答  Asaki  - 04/1/30(金) 15:55 -

引用なし
パスワード
   こんにちは。

動くか動かないか、という話なら
>Range(Cells(cellcnt1, "E"), Cells(cellcnt2, "I"))

Range(Cells(cellcnt1, "E"), Cells(cellcnt2, "I")).Select
で動くかと思います。

他には、
ループ内で何度も
>Range("C8:C11")
の値を消しているのが無駄です。
MsgBoxの戻り値による分岐も、ループの外で良いでしょう。
また、常に
>cellcnt2 = cellcnt1
なら、cellcnt2は不要でしょう。

もうちょっと整理すると、ループも必要なさそうです。
Private Sub CommandButton4_Click()

  'セル番地のカウント'
  Dim a As Integer
  a = Range("C9").Value

  If MsgBox("計算1の結果をクリアしますか?", 1, "MSGタイトル") = vbOK Then
    Range("C8:C11").ClearContents
    With Range("E9:I9").Resize(a)
      .ClearContents
      .Borders.LineStyle = xlNone
    End With
  End If

End Sub

【10531】Re:セルの指定方法
お礼  peppu  - 04/1/30(金) 15:57 -

引用なし
パスワード
   トランプマンさん、有難うございましたっ!
おかげさまでできましたっ!!

【10532】Re:セルの指定方法
お礼  peppu  - 04/1/30(金) 16:00 -

引用なし
パスワード
   Asakiさんもありがとうございましたっ!
出来たあとに気づいてしまって申し訳ないですm(__)m
Asakiさんの教えてくれた方法も試してみますっ!

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