Excel VBA質問箱 IV

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

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


35986 / 76738 ←次へ | 前へ→

【45940】Re:行をコピーし別のセルに行列入替でコピーしたい
発言  へっぽこ  - 07/1/18(木) 12:14 -

引用なし
パスワード
   合ってましたか。良かった。

昨日は混乱すると思いあえて必要最小限の改造としましたが
以下のようにシートを切り替えなくて済むようにできます。

Sub サンプル2()
  Dim 貼付行 As Long
  Dim コピー行 As Long

  貼付行 = 1
  コピー行 = 2
  
  Sheets("Sheet2").Select
  
  Do Until Sheets("Sheet1").Cells(コピー行, "A").Value = ""
    'Cells()やRange()の前にシート名を書くと、書いたシート名の
    'セルと言うことになります。
    Sheets("Sheet1").Range("A1:D1").Copy
    'シート名が付いていないと現在表示しているシートのセルになります。
    Cells(貼付行, "A").Select
    Selection.PasteSpecial Paste:=xlPasteAll, _
      Operation:=xlNone, SkipBlanks:=False, _
      Transpose:=True
   
    Sheets("Sheet1").Cells(コピー行, "A").Resize(, 4).Copy 'Resizeで4列にする
    '上ではCells().Select→Selection.PasteSpecialと2段階で書いてますが
    '実は下のようにCells()..PasteSpecialと1つに纏められます。
    Cells(貼付行, "B").PasteSpecial Paste:=xlPasteAll, _
      Operation:=xlNone, SkipBlanks:=False, _
      Transpose:=True
   
    貼付行 = 貼付行 + 4
    コピー行 = コピー行 + 1
  Loop
End Sub

またシートの指定もサンプル3のようにWith〜End Withで纏めることが出来ます。

Sub サンプル3()
'書き方1
  Sheets("Sheet1").Range("A1:D1").Interior.ColorIndex = 3
  Sheets("Sheet1").Cells(1, 1).Interior.ColorIndex = 4
'書き方2(書き方1と同じ意味になる)
  With Sheets("Sheet1")
    .Range("A1:D1").Interior.ColorIndex = 3
    .Cells(1, 1).Interior.ColorIndex = 4
  End With
'−−−−−
  Sheets("Sheet2").Select
  With Sheets("Sheet1")
    .Range("A1:D1").Interior.ColorIndex = 3 'Sheet1のA1〜D1
    '↓これは.で始まっていないのでwithの影響を受けない
    '(=現在表示されているシートのCells(1,1)ということになる)
    Cells(1, 1).Interior.ColorIndex = 5
    .Cells(1, 1).Interior.ColorIndex = 4 'Sheet1のA1
  End With
End Sub

時間があるときにヘルプを読んだりしてみてくださいませ。

1 hits

【45901】行をコピーし別のセルに行列入替でコピーしたい 超初心者 07/1/17(水) 18:28 質問
【45902】Re:行をコピーし別のセルに行列入替でコピ... へっぽこ 07/1/17(水) 18:35 回答
【45904】Re:行をコピーし別のセルに行列入替でコピ... 超初心者 07/1/17(水) 18:43 お礼
【45905】Re:行をコピーし別のセルに行列入替でコピ... へっぽこ 07/1/17(水) 18:47 発言
【45907】Re:行をコピーし別のセルに行列入替でコピ... 超初心者 07/1/17(水) 18:49 質問
【45909】Re:行をコピーし別のセルに行列入替でコピ... へっぽこ 07/1/17(水) 19:01 発言
【45933】Re:行をコピーし別のセルに行列入替でコピ... 超初心者 07/1/18(木) 11:40 お礼
【45940】Re:行をコピーし別のセルに行列入替でコピ... へっぽこ 07/1/18(木) 12:14 発言
【45941】Re:行をコピーし別のセルに行列入替でコピ... 超初心者 07/1/18(木) 12:29 お礼

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