カテゴリー: Excel(エクセル)マクロ・VBA

エクセルマクロを削除後、マクロがあるというメッセージが表示されてしまう…|Excel(エクセル)マクロ・VBA

エクセルで、マクロは削除した後に、このファイルを開こうとすると、メッセージが表示され「開こうとしたファイルにはマクロが設定されています」と出てくる場合があります。

マクロを削除したのに、なぜ?

こんな疑問をもったことはありませんか?

このメッセージを表示させないようにする方法について説明します。

まず、編集するファイルを開いてください。

「ツール」から「マクロ」→「Visual Vasic Editor」を選んでVBAエディタを表示させます。
(ALT+F11でも同じです)

このエディタ画面左側から「標準モジュール」をクリックすると、「Module1」という名前のマクロのが表示されます。

この「Module1」という標準モジュールが、前回記録したマクロの中身なので、これが削除されていなければ、マクロが設定されていることになるので、ファイルを開いたときにそのようにメッセージのダイアログボックスが表示されてしまうのです。

そこで、標準モジュールの左側の「+」をクリックしてください。すると標準モジュールが展開されます。

削除したいマクロ名(ここでは「Module1」)を右クリックすると、「Module1の解放」を実行することができます。

Module1の解放を選択すると、「エクスポートしますか?」と表示されますが、保存する必要がないなら、「いいえ」を選択すればOKです。

こうすると、マクロ本体が削除されるので、次からはファイルを開いたときのメッセージダイアログは表示されなくなります。

>パソコン教室 

>webデザインスクール

>楽天ネットショップ講座

>web関連企業パソコン研修 

>ホームページ更新サービス

>文書作成代行・DTPデータ作成サービス

>オフィスソフト企業パソコン研修

>動画の達人講座

>パソコン教室久喜

>会計ソフト(弥生会計・弥生給与)職業訓練集合研修

>講師派遣&パソコン研修~出張PC講師日記

>出張パソコン教室講師のひとりごと

>講師派遣出張パソコン教室講師のつぶやき

>講師派遣|社員研修・団体研修パソコン講師日記

>パソコンセミナー・パソコン講習会・講師派遣ブログ

>パソコン講師派遣・社員研修・団体研修|PC教室日記

>ITスクールQ&Aブログ

>講師派遣&パソコン研修ブログ

>講師派遣の出張パソコン教室ITスクールブログ

>出張パソコン教室ITスクールブログ

入力後のセル移動方向をシートごと・ブックごとに変える|Excel(エクセル)マクロ・VBA

Excelでは、[Enter]キーを押したあと、次にどのセルをアクティブにするのかを変更できます。

2003までのExcelならば[オプション]ダイアログ-[編集]タブ-[入力後にセルを移動する]欄で、Excel 2007・2010ならば[Excelのオプション]ダイアログ-[詳細設定]-[編集設定]欄-[Enterキーを押した後にセルを移動する]欄で、[Enter]キーを押したあとにセルを移動するかどうか、移動するならば下・右・上・左のどの方向へ移動するのかを設定できます。

講習中に、時々、この[Enter]キーを押したときの設定について、
「エクセル Enter後 移動方向 シート毎設定」
「エクセル 入力後セル移動方向 ファイル毎に」
といった質問を受けることがあります。

ワークシートごと・ブック(ファイル)ごとに、[Enter]キーを押したあとの移動方向を切り替える方法を探している方の質問です。

[Enter]キーを押した後のアクティブセルの移動方向は、アプリケーションごとに設定されるものなので、標準の機能で、シートごとやブックごとに[Enter]後に移動する方向を変えることはできません。

しかし、VBA(Visual Basic for Applications)を利用して、イベントプロシージャを作成すれば、シートごと・ブックごとに移動方向を変更したり、移動するかどうかを設定できます。

▼Enterキーを押したあと右方向にアクティブセルを移動するWorksheet_Activateイベントプロシージャ

Private Sub Worksheet_Activate()

 Application.MoveAfterReturn = True
 Application.MoveAfterReturnDirection = xlToRight

End Sub

まず、Application.MoveAfterReturnプロパティで、[Enter]キーを押したあとにアクティブセルを移動するかどうかを設定します。「True」なら移動する、「False」なら移動しない設定になります。

Application.MoveAfterReturnプロパティを「True」にして移動する設定にした場合、Application.MoveAfterReturnDirectionプロパティで移動方向を指定できます。

「xlDown」なら下
「xlToRight」なら右
「xlToLeft」なら左
「xlUp」なら上
となります。

それぞれのシートで、[Enter]キー後に、移動しなくなったり、移動方向が自動的に変更されることをご確認いただけるでしょう。

ファイルごとに、移動するかどうか・移動方向を設定したい場合、Workbook_Activateイベントプロシージャに同様のコードを書いておけばOKです。

>文書作成代行・DTPデータ作成サービス
>ワード・エクセル・マクロVBA・パワーポイント・アクセス企業パソコン研修
>出張パソコン教室ITスクール
>ホームページ更新サービス 
>パソコンの家庭教師BEST

ショートカットメニューを非表示に-Application.CommandBars(“Cell”).Enabled = False|Excel(エクセル)マクロ・VBA

Excelファイルを開いたときに実行されるAuto_Openマクロに簡単なコードを書いておくだけで、ショートカットメニューを非表示にできます。

▼セルのショートカットメニューを表示しないようにするAuto_Openマクロ

Sub Auto_Open()

 Application.CommandBars(“Cell”).Enabled = False

End Sub

「Application.CommandBars(“Cell”).Enabled = False」
で、マウスの右ボタンをクリックしても、[Shift]+[F10]キーを押しても、ショートカットメニューは表示されなくなります。

逆にショートカットメニューを表示されるようにするコードは
「Application.CommandBars(“Cell”).Enabled = True」
です。

Excelファイルを閉じるときに実行されるAuto_Closeマクロで、
「Application.CommandBars(“Cell”).Enabled = True」
を実行するようにしておくほうがいいでしょう。

>文書作成代行・DTPデータ作成サービス
>ワード・エクセル・マクロVBA・パワーポイント・アクセス企業パソコン研修
>出張パソコン教室ITスクール
>ホームページ更新サービス 
>パソコンの家庭教師BEST

エクセル2007でステータスバーの表示/非表示-Application.DisplayStatusBar|Excel(エクセル)マクロ・VBA

2003までのExcelならば、メニュー[表示]-[ステータスバー]や、[オプション]ダイアログ-[表示]タブ-[表示]グループ-[ステータスバー]チェックボックスで、ステータスバーの表示・非表示を切り替えられました。

ところがExcel 2007ではそれに該当するオプション設定や、コマンドが見当たりません。

そのことに起因する疑問でしょう。

Excel 2007に限らず、Office 2007ではステータスバーの表示・非表示を切り替えるコマンドはなくなっているようです。

どうしてもステータスバーを非表示にしたいという場合は、VBA(Visual Basic for Applications)を利用してください。

▼操作手順:ステータスバーを非表示にする
[Alt]キー+[F11]キーを押してVBEを起動
 ↓
[Ctrl]キー+[G]キーを押して[イミディエイト]ウィンドウを表示
 ↓
[イミディエイト]ウィンドウに
 「Application.DisplayStatusBar = False」
  と入力して[Enter]キーを押す

「Application.CommandBars(“Status Bar”).Visible = False」
でもステータスバーを非表示にできますが、[イミディエイト]ウィンドウを利用する場合は上記の
「Application.DisplayStatusBar = False」
のほうが簡単でしょう。

ステータスバーが非表示になっているときに表示したいときは、
「Application.DisplayStatusBar = True」
「Application.CommandBars(“Status Bar”).Visible = True」
としてください。

Excelであえてステータスバーを非表示にしたいという場合、Excelで業務用アプリを作成しているような場合でしょう。その場合、業務用アプリを開いたときに実行されるAuto_Openマクロで
「Application.DisplayStatusBar = False」や
「Application.CommandBars(“Status Bar”).Visible = False」
を実行して、ファイルを閉じるときに実行されるAuto_Closeマクロで
「Application.DisplayStatusBar = True」
「Application.CommandBars(“Status Bar”).Visible = True」
を実行してステータスバーを表示状態に戻しておくのがいいんじゃないでしょうか。

>文書作成代行
>パソコン企業研修
>パソコン教室
>パソコン教室久喜市 
>パソコンの家庭教師BEST

オートフィルタを一括解除するマクロ|Excel(エクセル)マクロ・VBA

VBA(Visual Basic for Applications)で、簡単にマクロを作成することができます。

▼すべてのオートフィルタを一括解除するマクロ
Sub RemoveFiltersAllWorksheets()

 Dim objWorkSheet As Worksheet

 For Each objWorkSheet In Worksheets
  objWorkSheet.AutoFilterMode = False
 Next

End Sub

AutoFilterModeプロパティをFalseにしてやれば、オートフィルタは解除できますから、すべてのワークシートに対して、AutoFilterModeプロパティをFalseにする処理を行ってやれば、オートフィルタを一括解除するマクロになります。

上記のマクロではFor Each Nextループの中で、AutoFilterModeプロパティをFalseにしています。

For Each Nextループの中でワークシートに対して何らかの処理を行うのは、Excelマクロの基本技ともいっていいものですので、標準で用意されていないような、すべてのシートに対する処理を行う機会が多いという方は、是非マスターされることをおすすめします。

>文書作成代行
>パソコン企業研修
>パソコン教室
>パソコン教室久喜市 
>パソコンの家庭教師BEST

« 過去の記事
 
これは解説風リンクです。