• ベストアンサー

ExcelのVBAで得た結果を転記したい

Excelで,ひとつのブックの余白や印刷倍率,印刷品質を表示するのに,次のようなVBAを用いています. '上余白を表示する ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.TopMargin / _ Application.CentimetersToPoints(1) MsgBox "現在の上余白は " & marginInches & " センチです。" End With '下余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.BottomMargin / _ Application.CentimetersToPoints(1) MsgBox "現在の下余白は " & marginInches & " センチです。" End With '左余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.LeftMargin / _ Application.CentimetersToPoints(1) MsgBox "現在の左余白は " & marginInches & " センチです。" End With '右余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.RightMargin / _ Application.CentimetersToPoints(1) MsgBox "現在の右余白は " & marginInches & " センチです。" End With 'ヘッダー余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.HeaderMargin / _ Application.CentimetersToPoints(1) MsgBox "現在のヘッダーは " & marginInches & " センチです。" End With 'フッター余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.FooterMargin / _ Application.CentimetersToPoints(1) MsgBox "現在のフッダーは " & marginInches & " センチです。" End With '印刷倍率を表示する With ActiveSheet.PageSetup Zoom = ActiveSheet.PageSetup.Zoom MsgBox "現在の印刷倍率は " & Zoom & " パーセントです。 " End With '印刷品質を表示する Dim PrintQuality As Variant With ActiveSheet.PageSetup PrintQuality = .PrintQuality(1) MsgBox "現在の印刷品質は" & PrintQuality & "dpiです。" End With 現在,ツールバーのボタンをおして起動させているのですが, シート数が多い時は手間になり,困っています. (ボタンのコードは以下) Private Sub Workbook_AddinInstall() Dim myBar As CommandBar Dim CKB1 As CommandBarButton Dim Exist As Boolean For Each myBar In Application.CommandBars '名前が"余白"であるならばフラグを立てる If myBar.Name <> "余白" Then Exist = False Else Exist = True If Exist = True Then Exit For Next myBar '既に作成されていなければ新規作成 If Exist = False Then _ Set myBar = Application.CommandBars.Add(Name:="余白", Position:=msoBarTop) With myBar Set CKB1 = .Controls.Add(Type:=msoControlButton) CKB1.Caption = "余白" With CKB1 .Style = msoButtonCaption .FaceId = 266 .Parameter = "余白" .OnAction = "余白" End With .Visible = True End With Set myBar = Nothing Set CKB1 = Nothing End If End Sub そこで, シートごとに上記の余白等の結果を, テキストファイルなどに転記できるようにしたいのですが, VBAで可能でしょうか? (以下のような感じです) sheet1 上:40 下:20 左:30 右:10 倍率:98 品質:600

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

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

テキストファイルですが、CSV形式が良いかと。 sheet1  Sheet2 上:40 上:42 下:20 下:20 左:30 左:28 右:10 右:10 倍率:98 倍率:98 品質:600 品質:600 のようにするのか Sheet1 上:40 下:20・・・ Sheet2 上:42 下:20・・・ の形式にするのか決める。 ーー テキストファイルの書き出しは Open "ファイル名.CSV" For Output As #1 Print #や Write # を使う。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_050.html http://www.geocities.co.jp/Milkyway/4171/vb6/010.htm スペース区切り http://www.k1simplify.com/vba/tipsleaf/leaf293.html など

その他の回答 (1)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

一例ですが 適当に変数を用意し、書き込みたいデーターを各変数に入れておきます 最後に Open "ファイル名.txt" For Output As #1 Print #1, "Sheet1" Print #1, "上:" & ue  ' ue, shita は、データが入っている変数 Print #1, "下:" & shita .. .. .. Close とします あと、シートに書き込んでおいて、テキスト形式で保存というのも有りえます