• ベストアンサー

エクセルVBA

エクセルVBAで、列の非表示をさせるためにはどうしたら良いでしょうか? また、別の質問になりますが、エクセルVBAで出した 結果をACCESSのレポート等で印刷させることって出切るんでしょうか? 前者はどうにかお知恵を借りてできるようにしたいです。後者はもし出来なければかまいません。 よろしくお願いいたします。

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

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

前者は、これこそマクロの記録で判るではないですか。 書式-列-表示しない,の操作をします。 Columns("C:C").Select Selection.EntireColumn.Hidden = True と出ます。 後者はCSVファイル等をエクスポートして、アクセスで印刷すれば良いと思いますが、エクセルの方が表として ビジネス的に見栄えが良いものが作れるのではないでしょうか。VBAで、逆方向の質問は見たことがありますが、本件はなぜ?。

KENMINA
質問者

補足

私もエクセルでやろうとしたのですが、単票形式で印刷させようとして知識が無くて挫折したので、面倒なやり方で行こうと思ったのです。 何か良いアドバイスありますか? もうちょっとVBAの勉強してみたいと思います。

その他の回答 (3)

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

>単票形式で印刷させようとして A4、B5に1枚やそれらの上下2つ、3つ切りで良いなら経験あります。左右も分割可能ですが。 あとカッターで上下に切る人手作業も面倒ですが。 印刷はRange("A1:H40").Printoutと1行で済みます。 その前にマクロの記録を取って、「ページ設定」(引いては「印刷」)の操作をして、そのVBAコードを知り、コード各行がどう言う意味か(何を左右するか)調べ知識を仕入れます。そして Range("A1:H40").Printoutの前に入れます。 A1:H40は印刷すべきシートの範囲です。内容により 決まります。 印刷に入る前に、VBAで各セルにデータをセットします(代入)。別シートからも可能でそのやり方を仕入れてください。 (1)枠罫線・見だし作り。行高列幅調節。色指定 など手作業で行う。 (2)VBAで指定セルに、データ設定のコードを作る (3)VBAで上記印刷コードを作る。 (4)各レコードごとに、内容が変るセルを内容をクリア (5)実行では(2)-(4)をレコード数だけ繰り返す。 (6)(2)で、場合によりVBAで印刷レコードを選別 (7)上下2レコード分盛る場合は2レコード分データを シートにセットして、1回VBA印刷コードを実行。その 繰り返し。

KENMINA
質問者

お礼

アドバイスありがとうございました!! 大変参考になりました。 今後もこのようなやり方でVBAの知識を仕入れて上達できるように頑張りたいと思います。

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.3

表示と非表示がひとつのマクロです。 表示されていれば、非表示になり、 非表示の場合は、表示になります。 Sub 表示() ActiveSheet.Unprotect With Columns("Q:IU") .Hidden = Not .Hidden End With ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub

回答No.2

非表示ではありませんが、列幅を0にする方法です。 単列は、 Worksheets("sheet1").Columns("A").ColumnWidth = 0 複数列は、 Worksheets("sheet1").Columns("A:F").ColumnWidth = 0 再表示は、例えば、0 を 5 にすると列幅=5で表示します。 ACCESSのレポートは出来ると思いますが、やった事がありませんけど、ややこしいですよ、エクセルの方が綺麗に出来ると思うけどなぁ~

関連するQ&A

  • Excel VBAで印刷ジョブを一つにしたい

    Excel VBAを使用して、シートAの元データの表の一行目から、 決められたセルに5レコードずつ読み込んで表示させる AccessのレポートようなシートBを作りました。 シートAには約500レコードあり、 シートBのページ数は約100ページ分になります。 このシートBの100ページを一度に印刷したく マクロを組み、ページを変えながらPrintOutメソッドで 印刷をしてみましたが、 プリンタのジョブが多くなりすぎて困っています。 Excelのみで、別のブックを使わずに解決する方法を探しています。 何か良い方法はないでしょうか。 よろしくお願いします。

  • EXCEL VBA

    はじめまして。ExcelのVBAについて質問させて頂きます。 - A-B-C            1 0 あ        2 0 い        3 1 う           4 1 え           5 1 お   上記のようなデータに対して、A列の値が1の場合、B列の値をC列へコピー して、B列をゼロにする。A列の値が0の場合は、そのまま。 (結果) - A-B-C            1 0 あ        2 0 い        3 1 0  う           4 1 0 え           5 1 0 お   といったようにVBAを作成したいのですが、なにぶん初心者なもので、 どのように記述すればよいのかわかりません。 よろしくお願いいたします。

  • EXCEL VBAからEXCELファイルを非表示で開きたい

    こんにちは。 EXCEL VBAから、別のEXCELのファイルを非表示で参照し、 セルの内容を取得したいのですが、やり方がわかりません。 どなたかお知恵をお貸しください。 できれば、具体的な記述方法を知りたいです。

  • エクセルのVBAに関する質問です。

    エクセルのVBAに関する質問です。 仮にA列にA1からA14まで(12341231212345)と入っていて、さらにB列にB1からB14まで(38906493087639)と入っていたとします。A列の(2)の隣にあるB列の数字はそれぞれ(8407)になりますよね。 この2のとなりのB列の数字を、A列の最初から(1234)(123)(12)(12345)と1を区切りとして、C列に、2に対応していた先ほどの数字を入力したいのです。 つまりC列には(88884440077777)と入るようにしたいのですが、VBAド素人の私には解説書を読んでもいい知恵が浮かびません。 どなたか、ご説明か、できればVBAのコピーを取らせていただけないでしょうか? よろしくお願いいたします。

  • ExcelをVBAで読み込むと

    ExcelデータをAccess VBAを使い、読み込んでテーブルに溜め込んでいます。 問題が1つあり、Excelのデータは他のシステムによって自動で作られています。 このExcelデータは1行目に見出しがあります。この見出しの列が時々追加されたり、削除さたりします。 例えば、下記の2列があるとします。読み込みたいのはID,NAMEのみです。 ID,NAME この2列が固定であれば、問題ありません。しかし、時々、 ID,SEIBETU,NAME と、SEIBETUという項目が追加されたりします。そうすると、Access VBAで読み取ろうとするとエラーが出ます(プログラムの修正をすればいいのですが)。 こういった問題を解決するには、何かいい方法はあるでしょうか?Accessでやっていますが、VB.NET、SQL Serverで解決できるなら、そちらを勉強して解決したいと思います。 よろしくお願いします。

  • エクセル2003のVBAを教えて

    エクセル2003のVBAを教えてください。 次の対象データで、(1)(2)(3)の作業が出来るエクセルVBAを教えて下さい。 (1)(2)(3)個々のVBAでお願いします。 ●対象データ:種類(A列)、文字(B列)、    データの行数:不特定なので、データのある最終行までとします。 ●教えていただきたい項目  (1):種類だけを(C列)に取り出す。  (2):種類の先頭に空白の行を3行入れて、追加の2行目の種類(A列)に文字(B列)を入れる。  (3):種類が5行以上あるときは、5行ごとに空白行を追加する。 ●対象データ 種類(A列)   文字(B列) AA       あああ BB       いいい BB       いい BB       いいい CC       うう CC       うう DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ ●(1)のVBAの結果(このようになるVBAを教えてください。) (C列) AA BB CC DD ●(2)、(3)のVBAの結果(このようになるVBAを教えてください。) 種類(A列)    文字(B列) あああ AA        あああ いいい BB        いいい BB        いいい BB        いいい うう CC        うう CC        うう ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ

  • Excelの文字を検索させるVBA

    毎日検索するワードがあるので、IEにあるgoogleツールバーにExcelの文字列を代入してタブ毎に検索結果を表示または、Excelに取り込みたいと思います。 このような事はVBAを使えば可能なのでしょうか? 抽象的な質問で恐縮ですが、おわかりの範囲でお教えください。 バージョンはExcel2003です。

  • エクセルのVBAマクロについて

    エクセルのVBAマクロについて、添付のような物を考えているのですが、宜しくお願いします。 B3~E15に関数を入れて、TRUE となったデーターを表示 させるまでは出来たのですが、このデーターをF~I列へ上から順に (空白行は詰めて)順次記録して行きたいのです。 B3~E15に表示させるデーターは、別シートから抽出し、 切り替えますので、結果を表示させたら、ボタンを押して記録し、 再度別データーを入れたらその下に記録して行くような仕組み を考えております。 宜しくお願いします。

  • Excel VBA の印刷後の判定

    いつもお世話になっています。 Excel VBA で不明な点が出てきたので質問させていただきます。 処理順として 1.AccessからExcelを出力し、出力後はそのまま表示しておく。 2.表示してあるExcelをユーザーが印刷する。 3.印刷したシートの見出しの色を変更する。 の3つなのですが、3の処理をExcelマクロで実行する際に、 印刷が実行されたかどうかの判別方法がわからないのです。 印刷直前でも構わないと思い、BeforePrint イベントを調べて使用してみたのですが、 印刷プレビューでもイベントが走ってしまい、ダメでした。 印刷実行なのか、プレビューなのか区別が出来る方法があればとも思っているのですが…。 ご存知の方、ご教授お願いいたします。

  • エクセルvbaかアクセスのvbaで開発予定

    エクセルvbaかアクセスのvbaで開発予定 お疲れ様です。 検索システムを作る予定です。 セルをクリックした時に、詳細画面を表示させたい のですが、データはアクセスから取得したいと 考えています。 もしそのようなシステムを作るとしたら、 エクセルvba + アクセス の組み合わせか、 又は、 アクセスのvba + エクセル、 どちらでも開発可能になるのでしょうか? 又、どちらでも開発可能な場合、 どちらの組み合わせが 上記のシステムの開発に 向いているのでしょうか? よろしくお願いします。

専門家に質問してみよう