こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelで複数の離れた特定セルのみ印刷する方法

久しぶりにExcelについて
質問させていただきます。

例えばセルA1、A2、B1、B2に
データを入力したとして
そのうちセルA1とB2のデータだけを印刷し
セルA2とB1は印刷しない方法はあるで しょうか。

マクロで

ActiveSheet.PageSetup.PrintArea = "A1:B2"

のように印刷範囲を指定することはよくありますが

"A1:B2"

の部分を

"A1,B2"

としても、セルA1しか認識しません。

情報の一部を自分以外には見せたくないときの
対応方法を知りたいのです。
ごく簡単なことと思って
インターネットでいろいろ調べてみたのですが
結局分かりませんでした。
もしかすると
文字を白くするなどの方法しかないのでしょうか。

アドバイスをお待ちしております。

投稿日時 - 2017-09-24 17:36:07

QNo.9378275

暇なときに回答ください

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

超やっつけ仕事です。

  Cells.Locked = False
  Selection.Locked = True
  For Each myCell In Range("A1", Range("A1").SpecialCells(xlLastCell))
    If myCell.Locked = False Then myCell.ClearContents
  Next
  Cells.Locked = True
選択されているセル以外を消去します。
当然ながら、使用領域が増えれば増えるほど時間がかかります(笑)。


で、直接の回答
> もしかすると
そのもしかすると、です。
直接、離れた範囲だけを印刷する方法は無いです。
理由はおそらく簡単。
紙に印刷された表をコピー(物理的複写)するとしましょう。
その中に「見せたくない部分がある」時ってどうしますか?
修正液で塗り潰してコピーしませんか?
エクセル(データの世界)でも同様です。
あるものを隠したいなら(エクセルなら)、
・見えなくする(文字色=背景色)
・隠す(「図形」で隠す、行列単位なら非表示もこれに当たるかな)
・消してしまう(文字通り)
のいずれか、です。

なので 
> 文字を白くするなどの方法しかないのでしょうか。
印刷するならそれでもOK。
配布するなら、白くしても「数式バー」でバレバレですね。
非表示しても再表示は可能です。
保護を掛けてもがんばってゴニョゴニョしちゃえば見れます。
見せたくないものは消しちゃうのが一番手っ取り早いです。
ということで、冒頭にループします。


正味、こんな「仕組み」を構築するなら
普通に「見せたくないところを消してやる」ほうが早いです。
頻度が高くて、毎回同じセル番地が対象なのであれば、
構築する価値もあるかもしれないですけどね。
都度変わるなら手作業でも変わらないですよ。

投稿日時 - 2017-09-26 18:39:16

お礼

回答ありがとうございます。
「直接、離れた範囲だけを印刷する方法は無いです。」
このお言葉ですっきりしました。

マクロを使って範囲指定して印刷することは
これまでにもよくありましたので
範囲を部分的に指定することも
その延長かと勝手に思い込んでおりました。

でも、手段がないことが分かりましたので
今後は文字を白くして印刷するなどの方法を
取っていくことにします。

また何かありましたら
よろしくお願いいたします。

投稿日時 - 2017-09-27 19:58:19

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

質問の内容が不明確と思う。補足しては。読者は、質問者の事情は全く分からないで読むのだ。例の説明も簡単すぎる。
ーー
目的は、関係者以外にデータを隠したいのか?
回答の参考に、目的ぐらい書くべきだろう。
別シートにコピーを作って、不要のセルやデータを消して、コピーの方を印刷すれば仕舞ではないか。
セルの文字色を白色にして、印刷するとか。
ーー
不要のセルやデータを指定する方法は何を考えているのか。
(1)プログラムの中にセル番地指定
(2)塗りつぶしの色で判別
(3)キーワード(データ見出し)を指定して、その隣(右や下の)のセル
(4)その他(セルデータの中身で判別。100より小ならとか。ライバル得意先Xのデータとか)
(5)印刷しないセルの場所は、そのつど変わるのか。
などを想像したが。
ーー
シートのデータの配置などの体裁は、崩したくないのでしょう。
隠しキャラで置き換えてよいのか(***のような)
ーー
質問者は、VBAもできそうなので、質問者が思った通りに、如何様にもなるのではないか。

投稿日時 - 2017-09-25 11:08:27

ANo.2

シートを複製していらないところだけ消せばいいのでは?
設定をする手間を考えたら そっちの方が簡単だと思います。

投稿日時 - 2017-09-25 00:47:45

補足

回答ありがとうございます。
確かに、複製した上で
見られたくない部分だけを消すことも
一つの方法かもしれません。
ただ、複製せずに簡単に対応する方法があれば
知りたいと思っていたのです。

投稿日時 - 2017-09-27 19:38:32

ANo.1

印刷範囲の設定 > 印刷範囲の追加


これで連続しない複数の印刷範囲を追加できますよ。

投稿日時 - 2017-09-24 18:38:29

補足

早速の回答ありがとうございます。
質問に不備がありました。
申し訳ございません。

確かに印刷範囲の追加はできますが
追加の分は別のページに移ってしまいます。
そうではなくて
同じページで印刷したい部分だけを
取り出したいのです。

投稿日時 - 2017-09-24 20:17:10

あなたにオススメの質問