Excelマクロ:用紙の縦/横に連動してマクロボタンの凹凸も制御したい

このQ&Aのポイント
  • Excelマクロを使って、用紙の縦/横に連動してマクロボタンの凹凸を制御する方法について教えてください。
  • Word2003で「用紙の向きを90度回転する」マクロを使って、ツールバーボタンに割り付け、紙を横にしたらツールバーボタンが凹み、紙を縦に戻したらツールバーボタンの凹みが元に戻るようにしたいです。
  • 現在の実装では、ボタンを押して紙を横にしてボタンを凹ませ、Wordを再起動すると、紙が横でないのにボタンを凹んだ状態で新規文書が起動してしまいます。改善方法を教えてください。
回答を見る
  • ベストアンサー

Excelマクロ: 用紙の縦/横に連動してマクロボタンの凹凸も制御したい

以下は、Word2003で「用紙の向きを90度回転する」マクロです。 (Wordのメニューのファイル→ページ設定→余白タブ→印刷の向き「縦/横」) 一回実行すると90度回転、もう一回実行すると元に戻るようになってます、 これをツールバーボタンに割り付け、紙を横にしたらツールバーボタンが凹み、 紙を縦に戻したらツールバーボタンの凹みが元に戻るようにしてます。 一見これでよさそうですが、ボタンを押して紙を横にしてボタンを凹まし、 Wordを再起動すると、紙が横でないのにボタンを凹んだ状態で新規文書が 起動してしまいます。 改善はどう記述すれば良いでしょうか。 印刷の向きが「横」に設定されている間はボタンが凹んでいて欲しいのですが。 '用紙の向きを90度回転する Sub Orientation()   Dim myButton As Office.CommandBarButton   Set myButton = Application.CommandBars.ActionControl   With myButton     If .State = msoButtonUp Then       With ActiveDocument.PageSetup         .Orientation = wdOrientLandscape       End With       .State = msoButtonDown     Else       With ActiveDocument.PageSetup         .Orientation = wdOrientPortrait       End With       .State = msoButtonUp     End If   End With   Set myButton = Nothing End Sub

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

>  マクロが見つからないか、またはマクロに対する >  セキュリティ レベルが高く設定されているため >  マクロが無効にされています。 この件に付きましては、#3で既に説明されていますが、 http://www.patent-boy.com/products/faq/faq.cgi?mode=view&no=3 「オプション」の設定が読まれるように設定されていないものだと思います。 ユーザーテンプレート: >場所:C:\Documents and Settings\(ユーザー名)\Application Data\Microsoft\Templates それと、 ツール--マクロ--セキュリティ--信頼できる発行元[タブ]  レ 組み込み済みのアドインとテンプレートをすべて信頼する(A) ここにチェック マイクロソフト側の説明(上記と重複します) 起動または Word 2002 を終了すると「このプロジェクト内のマクロは無効」のエラー メッセージ http://support.microsoft.com/kb/302632/ja OSは、XPでも、Vista でも通りますし、これに関しては、管理者権限自体は関係なかったはずです。もしも、これでも出来ないような状態というのは、こちらでは分かりませんが、Office 2000などバージョンが低い場合を除いては考えられません。

litton101
質問者

お礼

Wendy02さん、毎度御礼が遅くなって大変失礼しております。 ご教示の点は一から何度も点検しているのですが どうしても不具合が取れません。。。。 既に材料は揃えていただきましたので 腰をすえてじっくり適用し、成功できるようにしたいと思います。 親身になって様々なご回答、本当にありがとうございました。 今後ともよろしくお願い致します。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 >ところが、紙を横にしたままWordを閉じると、再度Wordを起動した際に >紙は縦、ボタンは凹んだ状態になっています。 >紙は縦、ボタンは凹んでいない状態になって欲しいところなのですが・・・ Normal.dot のThisDocument に#4で書かれたコードが書かれていれば、そのような問題は発生しないはずです。おそらく、ThisDocument 側のすべてのマクロが生きていません。 '=======#4のThisDocument 用マクロ========= 'コメント部分は、特に残す必要はありません。 '------------------------------------------- 'ThisDocumentのみ (同名のものがあれば、上書き) '------------------------------------------- Private Sub Document_Close()  ・  ・  ・ ---------------------------------------- 試しに、この中のひとつに、以下のように書き加えれば働いているか分かります。★ Private Sub Document_Open() 'ファイルを開くと反応します。   Set myApp = Application   Call wdOrientationChecker   MsgBox "起動しました。" '★←これを書き込んでみれば、起動しているか分かります。 End Sub '------------------------------------------- ★不要になりましたら、削除してください。

litton101
質問者

お礼

Wendy02さん、毎度丁寧なご回答大変ありがとうございます。 御礼と動作確認報告が遅れ勝ちで申し訳なく思っております。 VBEで、左ペインのプロジェクトツリーで、 Normal→Microsoft Word Objects→ThisDocument に、#4のコードを貼り付けてみました。 実行した結果(ツールバーのOrientationボタン押下)は、相変わらず   マクロが見つからないか、またはマクロに対する   セキュリティ レベルが高く設定されているため   マクロが無効にされています。 です、、、。 #5でお示しいただいた、 > Private Sub Document_Open() 'ファイルを開くと反応します。 (以下略) …これを加えて保存しようとすると、   コンパイル エラー:   名前が適切ではありません: Document_Open となります。・・・何かまたまた初歩的なミスをしておりますでしょうか??

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 今回のWord VBAは、一般的なマクロの基準からは、1ランクか2ランク上のものですから、インターネットで調べても、資料が出てこないと思います。SearchbuttonRev()の結果を見せていただいて、本来、ボタンのマクロを再登録していただく必要があったようです。早めに気がついていれば、それを直すマクロを提供していましたが、元のボタンの登録場所に、マクロを上書きしてしまうのが早いと思います。 これを参考に設定をしました。 '------------------------------------------- References  >Menu: MyToolbar >ButtonName: Orientation >登録マクロ: NewMacros.Orientation >場所:C:\Documents and Settings\(ユーザー名)\Application Data\Microsoft\Templates\Normal.dot '------------------------------------------- VBE Normal.dot の中に、以下のものを貼付けし直してください。 なお、上記の情報から、Module1ではなく、NewMacrosになっているようですから、そちらを生かし、Module1の同様のものは削除してしまって構いません。 'コメント部分は、特に残す必要はありません。 '------------------------------------------- 'ThisDocumentのみ (同名のものがあれば、上書き) '------------------------------------------- Private WithEvents myApp As Application '←最上部 Private Sub Document_Close()   Call wdOrientationChecker(False) End Sub Private Sub Document_New()   Call wdOrientationChecker(False) End Sub Private Sub Document_Open()   Set myApp = Application   Call wdOrientationChecker End Sub Private Sub myApp_WindowActivate(ByVal Doc As Document, ByVal Wn As Window)   Call wdOrientationChecker End Sub '------------------------------------------- ''NewMacrosのみ--上書き(Module1 にあった同名のマクロは残さず削除してください。) '------------------------------------------- Sub Orientation()   Dim MyButton As Office.CommandBarButton   Set MyButton = Application.CommandBars.ActionControl   With MyButton     If .State = msoButtonUp Then       With ActiveDocument.PageSetup         .Orientation = wdOrientLandscape       End With       .State = msoButtonDown     Else       With ActiveDocument.PageSetup         .Orientation = wdOrientPortrait       End With       .State = msoButtonUp     End If   End With   Set MyButton = Nothing End Sub Sub wdOrientationChecker(Optional flg As Boolean = True) '文書の向きをチェックするマクロ   Dim MyButton As CommandBarButton   Set MyButton = Application.CommandBars("MyToolbar").Controls("Orientation")   If flg Then     If ActiveDocument.PageSetup.Orientation = wdOrientLandscape Then       MyButton.State = msoButtonDown     Else       MyButton.State = msoButtonUp     End If   Else     MyButton.State = msoButtonUp   End If End Sub '-------------------------------------------

litton101
質問者

お礼

Wendy02さん、完全におんぶに抱っこになってしまいまして心苦しい限りです。 本当にありがとうございます。 おかげさまで、無事既存環境で回転はさせられるようにはなりました。 ところが、紙を横にしたままWordを閉じると、再度Wordを起動した際に 紙は縦、ボタンは凹んだ状態になっています。 紙は縦、ボタンは凹んでいない状態になって欲しいところなのですが・・・ 元質問と同じ状態に陥っているようです。 せっかくここまで突き詰めていただいたので、念のためご報告させていただきます。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 情報取得マクロを修正しました。今回は、特に修正する必要はありません。ただ、単に確認のためだけです。 私自身も、これで取ってみて、気がつかない部分がありました。私のNormal.Dot は、以下の「ユーザーテンプレート」にあります。一旦、設定すれば、変更なければ、いじる必要はありません。大変だと思いますが、全体のマクロがこういう面倒な設定になる可能性があると思ったほうがよさそうです。 '------------------------------------------- Sub SearchbuttonRev() 'ボタンを探すプログラム(修正版) Dim MyButton Dim a, b, c, d, e, v   Set MyButton = Application.CommandBars   On Error Resume Next   For Each c In MyButton     For Each v In c.Controls       If Err.Number = 0 Then         '設定マクロ名:大文字・小文字の区別あり         a = v.OnAction Like "*Orient*"       Err.Clear       If a = True Then        b = v.Parent.Name        c = v.Caption        d = v.OnAction        e = v.Parent.Context        MsgBox "Menu: " & b & vbCrLf & "ButtonName: " & c & vbCrLf & _        "登録マクロ: " & d & vbLf & "場所:" & e, , "情報メニュー"        'Debug.Print "Menu: " & b; "ButtonName: " & c & "登録マクロ: " & d & vbLf & "場所:" & e         Exit Sub        End If       End If     Next   Next End Sub '------------------------------------------- >「マクロが見つからないか、またはマクロに対するセキュリティ レベルが高く設定されているためマクロが無効にされています。」 この件は、私は経験がありませんので、以下をみていだだけますか? http://www.patent-boy.com/products/faq/faq.cgi?mode=view&no=3 この内容自体は、私の考えているスタイルと違いますので、オプションの内容を確認してください。 だいたいは以下のようになると思います。[:]の右が空白なのは、私は空にしています。 なお、修正したマクロで情報を確認してください。 '------------------------------------------- Document and Setting... の部分が隠れていますが、 例えば、以下のような場所になります。 ------------------------------------------- 文書: 任意 クリップアート: ユーザーテンプレート: C:\Documents and Settings\[User ID]\Application Data\Microsoft\Templates ワークグループテンプレート: 自動バックアップ:任意 ツール: C:\Program Files\Microsoft Office\OFFICE11 スタートアップ: C:\Documents and Settings\[User ID]\Application Data\Microsoft\Word\STARTUP\ ------------------------------------------- ========================================= なお、これが通りましたら、今のスタイルには、Windows.Activate(ドキュメントを切り替えた時にチェックするモード)がありませんので、コードを加えなくてはなりません。 'ThisWorkbook モジュール '------------------------------------------- Private WithEvents myApp As Application '一行目 >Private Sub Document_Open() >  Call wdOrientationChecker >End Sub      ↓ Private Sub Document_Open()   Set myApp = Application '←書き加えます   Call wdOrientationChecker End Sub '------------------------------------------- '新たなイベント・ドリブン型マクロ(ThisDocument の最後尾に加える) Private Sub myApp_WindowActivate(ByVal Doc As Document, ByVal Wn As Window)   Call wdOrientationChecker End Sub

litton101
質問者

補足

Wendy02さん、たびたびのご教示感謝にたえません。 また、とっくに試してはいたのですが、下記に示すトラブルで解決策がないか いろいろ試しておりました、結果的に報告や御礼が遅くなりましたことをお許しください。 No3でご教示いただいたマクロなど、整理すると文末のようになるかと思います。 これを、Normal.dotのNewMacrosに貼り付けると、 >Private WithEvents myApp As Application '一行目 ここが赤字になります。 Project(文書1)のThisDocumentに貼り付ければ赤字になりませんが・・・。 Normal.dotでも、ThisDocumentでも、いずれにせよツールバーボタン (=「Orientation」をキャプションとするボタン)を押下すると 相変わらず「マクロが見つからないか、またはマクロに対するセキュリティ レベルが高く設定されているためマクロが無効にされています。」となります。。。。 Wendy02さんが#3でご教示くださったサイトもみてみたのですが・・・ そうそう、#3のスクリプト実行結果は以下の通りです。 Menu: MyToolbar ButtonName: Orientation 登録マクロ: NewMacros.Orientation 場所:C:\Documents and Settings\(ユーザー名)\Application Data\Microsoft\Templates\Normal.dot '------------------------------------------- 'Normal.dotの標準モジュールか、ThisDocument どちらでも良い Private WithEvents myApp As Application '一行目 Sub wdOrientationChecker(Optional flg As Boolean = True) '文書の向きをチェックするマクロ   Dim MyButton As CommandBarButton   Set MyButton = Application.CommandBars("MyToolbar").Controls("Orientation")' 'ここはキャプションにあわせて変更済みです。   If flg Then     If ActiveDocument.PageSetup.Orientation = wdOrientLandscape Then       MyButton.State = msoButtonDown     Else       MyButton.State = msoButtonUp     End If   Else     MyButton.State = msoButtonUp   End If End Sub 'Normal.doct のThisDocument Private Sub Document_Close()   Call wdOrientationChecker(False) End Sub Private Sub Document_New()   Call wdOrientationChecker(False) End Sub Private Sub Document_Open()   Set myApp = Application '←書き加えます   Call wdOrientationChecker End Sub

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >Word2003のツール→ユーザー設定→コマンドタブ→「分類」の「マクロ」に >wdOrientationCheckerが出てきません、、、 ドキュメント側から呼び出して使うものではありませんから、出てきません。 >早速当方のVBEで、Normal.dotの標準モジュールのNewMacros(ここに他の細かいマクロも入れてあります)に加える形で組み込んでみたんですが、 Normal.doct のNewMacros でも構いませんが、ともかく、ボタンがどう張付ているか分かればよいのですが。 大事なことは、ここだけです。 >「表示のCaption に名称を合わせる」ということの意味がわからないのですが、 >そちらを設定していないのが原因でしょうか。 図をみてください。私のところでは、Orientation と出ています。これが、キャプション(Caption)です。 以下のプログラムで、検索してみてください。 Menu ---> Menu Bar ButtonName(Caption)--> Orientation メッセージボックスに出てきたものは、イミディエイトウィンドウにも出ていますので、それを、#1のマクロの以下の行を書き換えてください。 Set MyButton = Application.CommandBars("Menu Bar").Controls("Orientation") '要変更 '------------------------------------------- 'どこでもよいので、試してみてください。 Sub Searchbutton() 'ボタンを探すプログラム Dim MyButton Dim a, b, c, v   Set MyButton = Application.CommandBars   On Error Resume Next   For Each c In MyButton     For Each v In c.Controls       If Err.Number = 0 Then         '設定マクロ名:大文字・小文字の区別あり         a = v.OnAction Like "*Orient*"       Err.Clear       If a = True Then        b = v.Parent.Name        c = v.Caption               MsgBox "Menu: " & b & vbCrLf & "ButtonName: " & c        Debug.Print "Menu: " & b ; "ButtonName: " & c         Exit Sub        End If       End If     Next   Next End Sub '------------------------------------------- 不要になったら削除して良いです。

litton101
質問者

お礼

Wendy02さん、たびたびのご教示大変ありがとうございます。 初歩的な質問に丁寧にご教示いただき感謝に耐えません。 Searchbutton()を実行してみましたら、   Menu ---> My Toolbar   ButtonName(Caption)--> 用紙を90度回転 と出てきましたので、以下のように設定しました。 Set MyButton = Application.CommandBars("My Toolbar").Controls("用紙を90度回転") '要変更 既存のボタンを押下してみましたら、 「マクロが見つからないか、またはマクロに対するセキュリティ レベルが高く設定されているためマクロが無効にされています。」 というメッセージが出て、用紙が90度回転されません。 些細な設定ミスかもしれませんが・・・

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 ここでは、ボタン名を、Orientation にしていますが、 Set MyButton = Application.CommandBars("Menu Bar").Controls("Orientation") '要変更 表示のCaption に名称を合わせてください。また、Menu Bar ではなく、別の場所に入れている場合は、正しい場所に設定してください。ただ、正しい場所が見つからない場合は、検索用のマクロを別途作らなくてはなりません。 '------------------------------------------- 'Normal.dotの標準モジュールか、ThisDocument どちらでも良い Sub wdOrientationChecker(Optional flg As Boolean = True) '文書の向きをチェックするマクロ   Dim MyButton As CommandBarButton   Set MyButton = Application.CommandBars("Menu Bar").Controls("Orientation") '要変更   If flg Then     If ActiveDocument.PageSetup.Orientation = wdOrientLandscape Then       MyButton.State = msoButtonDown     Else       MyButton.State = msoButtonUp     End If   Else     MyButton.State = msoButtonUp   End If End Sub '------------------------------------------- 'Normal.doct のThisDocument Private Sub Document_Close()   Call wdOrientationChecker(False) End Sub Private Sub Document_New()   Call wdOrientationChecker(False) End Sub Private Sub Document_Open()   Call wdOrientationChecker End Sub

litton101
質問者

お礼

Wendy02さん、早速のご回答ありがとうございます、 早速当方のVBEで、Normal.dotの標準モジュールのNewMacros(ここに他の細かいマクロも 入れてあります)に加える形で組み込んでみたんですが、 Word2003のツール→ユーザー設定→コマンドタブ→「分類」の「マクロ」に wdOrientationCheckerが出てきません、、、 うう、初歩的な質問ですみませんが、なぜでしょう? ツールバーにボタンがのっけられません。。。 それと、 > ここでは、ボタン名を、Orientation にしていますが、 > Set MyButton = Application.CommandBars("Menu Bar").Controls("Orientation") '要変更 > 表示のCaption に名称を合わせてください。 「表示のCaption に名称を合わせる」ということの意味がわからないのですが、 そちらを設定していないのが原因でしょうか。 #すみません、元質問のマクロも詳しい人に聞いたり ネットの記事を参考にしたりで何とか作ったもので マクロの考え方があまりよくわかっていなくてすみません。

関連するQ&A

  • 用紙の向きを縦と横にする

    Word2003を使用しています。用紙の向きを縦にしているのですが、その内、1ページだけ横にしたいのですが、どうしたら良いでしょうか。 お分かりの方教えてください。宜しくお願いします。

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

    エクセルの印刷マクロを作りましたが、動作が非常に遅いのです。 スタッフ用と管理者用のマクロを作り、スタッフ用が遅いのです。 余計なものが含まれているのでしょうか? お願いします。 Sub スタッフ() ' スタッフ Macro   ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$55" With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$55" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .CenterHorizontally = True .CenterVertically = True .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 76 .PrintErrors = xlPrintErrorsDisplayed End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$60" With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$60" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .CenterHorizontally = True .CenterVertically = True .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 70 .PrintErrors = xlPrintErrorsDisplayed End With Range("A1").Select End Sub

  • エクセル ボタン マクロ 修正

    Sub 印刷() Dim a As Variant a = MsgBox("印刷しますか?", vbYesNo) If a = vbNo Then Exit Sub With Sheets("1") .Cells.FormatConditions.Delete .PageSetup.PrintArea = Range("A1:K73").Address .PrintOut End With End Sub として使用していたのですが シートをコピーして使用する事になり コピーした際印刷ができなくってしまうため修正したいのですが わからないため教えていただきたいです With Sheets("1")ここの部分を今現在ボタンを置いているシートを選択にしたいのです

  • ワードの縦・横の混在設定

    ワードの件で教えてください。 通常は紙を縦にして横書きで入力しているのですが、これを ============================== 1ページ目の紙の向きを「縦」、2ページ目の紙の向きを「横」、 3ページ目の紙の向きをまた「縦」に戻す方法 ============================== を教えてください。 お手数をおかけしますが、ご教授の程よろしくお願いいたします。

  • エクセルの印刷範囲をマクロで決めたいです。

    以前こちらで、選択範囲を印刷範囲にする方法を教えていただきました。 選択範囲は別の項目で決定されています。 With Selection Vert = .Rows.Count Side = .Columns.Count Print_range = .Cells(1, 1).Address & ":" & .Cells(Vert, Side).Address End With With ActiveSheet.PageSetup .PrintArea = Print_range .PaperSize = xlPaperA3 .Orientation = xlPortrait End With 以上の記述で無事選択範囲が印刷範囲になりました。 次に、選択範囲が何種類かのパターンに絞れる事がわかったので パターンごとに拡大縮小印刷の%も決定しようと Select Case True Case Masu = 10 ActiveSheet.PageSetup.Zoom = 100 Case Masu = 11 ActiveSheet.PageSetup.Zoom = 115 Case Masu = 12 ActiveSheet.PageSetup.Zoom = 123 Case Else ActiveSheet.PageSetup.Zoom = 100 End Select を追加したところエラーになります。 何がよくないのかさえわかりません。 よい解決策はないものでしょうか?

  • プリンターの印刷の向き横又は縦の使い方

    教えてください。 プリンターで印刷の向きの縦、横はどのように使うのですか プリンターで印刷の向きを180度回転に設定して印刷するとワードで作成した文書の下の方から印刷されますが ワードのページ設定・余白で印刷の向きを縦に設定、横書きした文書をプリンターで印刷の向きを横にして印刷しましたが印刷は何もしな いときと変わりませんでした。 プリンターの印刷の向き縦と横の使い方を教えてください。

  • Excelの表(A4横)をWordに(A4縦)で綺麗に貼り付ける方法

    Excelで作成した表(横)をWordに,回転させて(縦)貼付けたい のですが,文字がぼけて綺麗に貼付けられません. 何か良い方法をご存知の方いらっしゃいませんか?

  • エクセル マクロで教えてください

    下記のマクロがうまく働きません SUB印刷01は単独ではいくのですが、繰返しをするとプレビューの行で止まります。SHEETオブジェクトがおかしいというのですが私には分かりません宜しくお願いします Sub 印刷01() With ActiveSheet.PageSetup .PrintQuality = 600 .CenterHorizontally = True .CenterVertically = False .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 47 .PrintErrors = xlPrintErrorsDisplayed End With ActiveWindow.SelectedSheets.PrintPreview ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True End Sub Sub 印刷繰返し() Dim WS As Object For Each WS In Sheets WS.Activate Call 印刷01 Next End Sub

  • Word ツールバーの削除

    下記の様なマクロを組み込みました。 しかしこのマクロ自体不必要になったので削除したのですがツール→ユーザー設定→ツールバーにはツールバー及びボタンが残ってしまいました。 ツール→ユーザー設定→ツールバーで削除をすれば消えますが新たにWordを立ち上げると消えていません。 マクロでCommandBars("Indent").Deleteともしましたが結果は同じでした。 どうすれば消えるのでしょうか?どなたかご教授願います。 Sub auto_open() Dim myBar As CommandBar, myButton As CommandBarButton '新しいMenuBarを追加 Set myBar = CommandBars.Add 'MenuBarに名前を設定 myBar.Visible = True myBar.Name = "Indent" myBar.Position = msoBarTop '新しいボタンを追加 Set myButton = myBar.Controls.Add With myButton .Caption = "[チュックインデント]" .Style = msoButtonCaption End With 'ボタンが押下時実行マクロ設定 myButton.OnAction = "checkIndent" myBar.Visible = True End Sub Sub auto_close()

  • Excelマクロで印刷範囲の指定をしたい

    Excelで一覧表を作成し、 『印刷A3』と『印刷A4』というボタンを作り、 それぞれ印刷範囲が異なるようにマクロを組みたいと思い、『印刷A3』の場合は下記のマクロで問題ありませんでした。 【印刷A3】 ------------------------------------------------- Sub 印刷A3_Click() Worksheets(7).PageSetup.PrintArea = _ Range("A6").CurrentRegion.Address With Worksheets(7).PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA3 .Zoom = 63 End With Worksheets(7).PrintOut Preview:=True End Sub ------------------------------------------------- セルA6以降の入力されているセルを選択できるのですが、『印刷A4』の場合は、列の範囲を23列までとし、23列目以降は印刷範囲外としたいです。 (列は最大で33列まであります) 行は『印刷A3』と同じように、入力されている全てのセルを範囲としたいです。 マクロ初心者のため、教えていただけると助かります。 よろしくお願い致します。

専門家に質問してみよう