• ベストアンサー

EXCEL表示シートのみ選択

A B G I 1 - - - - 2 - - - - 3 - - - - 4 - - - - 5 - - - - 表示上は上記のようになっていますが、C,D,E,F,H列が 非表示なっている状態で、非表示になっている列にも値が はいっています。 仮にこの状態で、A列からI列までをコピーして別シートに ペーストした場合、非表示の列もペーストされます。 このような感じの時に非表示の列は貼り付けせずに表示列のみを貼り付けるようなことは可能でしょうか? VBでコードを記述することになるとおもうのですが、 どなたかご教授下さい。お願い致します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

A1:G5にデータを入れ、B、E、G列を非表示にして H8以下、以右に貼りつけます。 Sub test01() Range("A1:H5").Select Selection.SpecialCells(xlCellTypeVisible).Select Range("A1:H5").Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Range("H8").Select ActiveSheet.Paste End Sub B、E、G列はコピーされません。 実は、種を明かすとhttp://www2.odn.ne.jp/excel/waza/cell.html#SEC16 の操作を、マクロ記録したものです。 参考になりませんでしょうか。

その他の回答 (5)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.6

他の方と内容は殆ど同じです。 例ではアクティブシートの表示部分をコピーし、新規シートを追加して貼り付けてます。 Sub test() Dim ws As Worksheet, r As Range  ActiveSheet.UsedRange.SpecialCells(12).Copy  Set ws = Worksheets.Add  ws.Paste  Application.CutCopyMode = False  ws.Range("A1").Select End Sub Excel97だと、行と列を非表示にしてあるシートの全表示セルをコピー&ペーストした場合に猛烈に時間がかかるので、UsedRangeを使いました。

  • jukate
  • ベストアンサー率25% (14/56)
回答No.5

Sub test01() Sheet1.Activate Sheet1.Cells.Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheet2.Activate Sheet2.Cells(1, 1).Activate ActiveSheet.Paste Sheet2.Activate Sheet2.Cells(1, 1).Select Sheet1.Activate Sheet1.Cells(1, 1).Select Sheet1.Application.CutCopyMode = False End Sub No.4のかたへ もう少し修飾してからにしたほうが良いのでは? でも、そのやり方は良いと思います

  • jukate
  • ベストアンサー率25% (14/56)
回答No.3

Sub column() For n = 1 To 256 If Sheet1.Columns(n).Hidden = False Then m = m + 1 Sheet1.Activate Sheet1.Columns(n).Select Selection.Copy Sheet2.Activate Sheet2.Cells(1, m).Select ActiveSheet.Paste End If Next n Sheet2.Activate Sheet2.Cells(1, 1).Activate Sheet1.Activate Sheet1.Cells(1, 1).Activate End Sub VBでならこういう感じですか。 もっといい手はあると思いますが、

  • ayasu
  • ベストアンサー率35% (56/156)
回答No.2

F5でジャンプを開く→セル選択→可視セルにチェック→OK→コピー→ペースト で、いかがでしょうか。

  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.1

Ctrlキーを押しながらA,B,G,Iと順にクリックすると クリックしたセルだけが選択されます。 後はコピー&ペーストするだけで非表示領域ははコピーされません。

tomoyui
質問者

補足

説明が足りなくて申し訳ありません。 実際には、どの列が非表示なっているか分からない状態で ということです。 今回の例でいうと、最終行がI列とことのみわかっているということです。A列が表示か非表示なのかは事前に分からないので、判断しながらということになると思います。

関連するQ&A