困ったー

困ったことを調べたブログ

オリンピック特集👉👉👉 😊チケット申し込みは5/28まで。

10連休でお金が無くなったところへ、この攻撃は卑怯!👉👉👉 😊エピックストアで、 WorldWarZ 3880->2330円、サティスファクトリー 3380->2380円。 😊マイクロソフトストアで、 Minecraft Windows 10 スターター コレクション 3500->2350円。 😊任天堂ストアで、 2本でお得 ニンテンドー 9980円。マリオメーカー2にも使えるよ。

【エクセル2016・2019】マクロまとめ 動かない場合は?

エクセル2016でマクロを使用するには、以前のエクセルと同じように開発メニューが表示できるようにしましょう。

マクロを使うには?

Construction Site

エクセルのマクロとは?

コンピュータやプログラミングでは、プログラムの命令を記録したものなどにマクロという言い方をします。

 

エクセルならVisual Basicを使って作成したプログラムのことをマクロといいます。

 

いつもいつも同じ手順で繰り返しているような処理を、マクロを使って1度に処理できるようにすると事務も効率化できるでしょう。

 

マクロを使う準備は?

まず「ファイル」メニューから、「オプション」を選びます。

オプションが出たら、左側の項目から「リボンのユーザ設定」を選びます。

右側にある「開発」のチェックボックスをオンにします。

f:id:apicode:20150916092023p:plain

 

すると、「開発」メニューが表示されます。

リボンから「ビジュアルベーシックエディター」や「マクロ」といった機能をワンクリックで呼び出せるようになります。

f:id:apicode:20150916092025p:plain

 

マクロが動作するか確認するには?

実際にエクセル2016でマクロを使ってみて、マクロが動作するか確認してみましょう。

ここでは「ハローワールド」という文字をダイアログだけのプログラムを実行します。

 

まずは開発タブを選びます。タブがない場合にはオプション設定を確認しておきましょう。

次に「Visual Basic」をリボンで選びます。するとビジュアルベーシックエディターが起動します。

f:id:apicode:20150916092025p:plain

 

「vba project」というものが作られます。これは「マクロ」全般を含みます。「マクロ」ではいろんなファイルを使う場合がありますから、プロジェクトが1つの管理単位となります。ファイルを入れるフォルダーのようなもの考えるとわかりやすいかもしれません。

 

そのプロジェクトの中には「Sheet1」というファイルがあるので右クリックします。そして「コードの表示」を選びます。

または「Sheet1」をダブルクリックするだけでもOKです。

f:id:apicode:20150916092641p:plain

 

ここに文字列を入れます。

Sub test()
    MsgBox "HelloWorld!"
End Sub

f:id:apicode:20150916092642p:plain

 

カーソルがまだ文字入力の画面に残った状態で「F5」キーを押します。

するとプログラムが実行されます。

下記のように表示されます。

表示されたら「OK」を押してダイアログを閉じます。

f:id:apicode:20150916092644p:plain

 

このように

Sub プログラム名()
    命令1

 命令2....
End Sub

とマクロの命令を書いていくのが基本となります。

 

マクロで書式を設定するには?

マクロを使うと、一括して処理を行えるようになるので便利です。

今までなら、セルを選んで、「xx」メニューを出して「yy」ボタンを押して、「zz」を選んで...というのを毎回実行していました。

それをワンボタンでやれるようになると、時間的にもずいぶん楽です。

ここではセルの書式変更をしてみましょう。

 

まずサンプルとしてA1に適当な数値を入れます。

f:id:apicode:20150916094852p:plain

「開発」メニューから「VisualBasic」を選びビジュアルベーシックエディターを起動します。

Sheet1をダブルクリックして、シート用のスクリプトウィンドウを開きます。

次のように入れます。

Sub test()
   Range("A1").NumberFormatLocal = "0%"
End Sub

f:id:apicode:20150916094905p:plain

これはセル(A1)の書式設定を「パーセント表示」にしろという命令です。

F5キーを押して実行後、エクセルの画面に戻ると、セルがちゃんとパーセント表示になっています。パーセントでは1が100ですから、155は15500になっているわけです。

f:id:apicode:20150916094910p:plain

書式を数値にする

0_ と指定すると書式が文字列になります。

Sub test()
   Range("A1").NumberFormatLocal = "0_ "
End Sub

 

書式を日付にする

yyyy/m/dと指定すると書式が文字列になります。

Sub test()
   Range("A1").NumberFormatLocal = "yyyy/m/d"
End Sub

 

書式を文字にする

アットマークを指定すると書式が文字列になります。

Sub test()
   Range("A1").NumberFormatLocal = "@"
End Sub

 

マクロでセルを上下反転させるには?

選択した複数セルを上下反転させたい場合があります。

本来は「並べ替え」機能でソートすればいいのですが、数字がもっとランダムに並んでいて上下を反転させたいだけ、という場合には効果がありません。

 

f:id:apicode:20150917101026p:plain

 

こういうときはマクロは便利です。

開発>Visual Basicでエディターを起動します。

この場合、選択セルを反転させるので該当シートか、もしくはブックのウィンドウを開き以下を入力。F5キーで実行させると、上下が反転します。

Sub Hanten()
   Dim Dat1 As Variant, Dat2() As Variant
   Dim rCnt As Long, cCnt As Integer

  Dim r As Long, c As Integer

   Dat1 = Selection.Value
   rCnt = UBound(Dat1, 1)
   cCnt = UBound(Dat1, 2)
   ReDim Dat2(1 To rCnt, 1 To cCnt)
   For r = 1 To rCnt
   For c = 1 To cCnt
     Dat2(r, c) = Dat1(rCnt + 1 - r, c)
   Next c
   Next r
   Selection.Value = Dat2
End Sub

 

実行後にエクセルのシートを見ると、こんな感じです。見事に上下が反転しています。

f:id:apicode:20150917101327p:plain

 

参考:エクセル データ列の上下反転のやり方 - たとえば、A2からA100まで数... - Yahoo!知恵袋

 

マクロでエクスプローラを起動するには?

エクセルのマクロを書くため、開発メニューからビジュアルベーシックエディターを起動します。

 

シート1をダブルクリックして以下を入力。したらすぐにF5キーを押して実行します。

Sub Main()

   Dim ie As Object

   Set ie = CreateObject("InternetExplorer.Application")

   ie.Visible = True

End Sub

 

すると、インターネットエクスプローラが起動します。

f:id:apicode:20150916105840p:plain

  

2016ではエクセル2010のマクロでも動く?

基本的には動きます。

 

 

マクロがちゃんと動かない? 

マクロがうまく動かない、有効にできないという場合には以下チェックしてみましょう。

 

マクロの設定

オプション>セキュリティセンター>セキュリティーセンターの設定>マクロの設定」でマクロのオプションを選択します。

絶対安全なファイルであることが確実という場合には「すべてのマクロを有効にする」をチェックし、マクロが動作するように設定することができます。

f:id:apicode:20170501224632p:plain

 

なお、毎回マクロの確認がでるとうざい!という場合、特定の場所においたファイルはマクロの確認をださなくすることができます。

「信頼できる場所」で「新しい場所の追加」で特定のフォルダを追加しましょう。

f:id:apicode:20181124151156j:plain

 

保護ビュー

ネットから落としたファイルについては、セキュリティの関係で自動的に保護ビューにセットされる場合があります。

保護ビューでは、マクロ実行に制限がかかります。

 

そこで、「オプション>セキュリティセンター>保護ビュー」で、「インターネットから取得したファイルに対して保護ビューを有効にする」のチェックをはずしたり、「安全でない可能性のある場所のファイルに対して、保護ビューを有効にする」のチェックをはずしてみましょう。

そのうえで再度ファイルをダウンロードして開いてみましょう。

f:id:apicode:20170501224838p:plain

 

エクセルを最新版に保つ

マクロを実行してフリーズやクラッシュが起きる場合、DLLのバージョンが古かったというケースもあります。

バグが改善されている可能性もありますので、エクセルのプログラム自体を最新の状態に保っておきましょう。「ファイル>アカウント>Officeの更新プログラム」から確認できます。

 

ウィンドウズアップデート

マクロが有効かできず、原因がウィンドウズアップデートにあったというケースが報告されています。

今まで使えていたの急に動かない場合には、最近ウィンドウズアップデートがなかったかチェックしてみるのもいいかもしれません。

 

 

その他のマクロの不具合

このブックには 安全ではない可能性?

ネットからダウンロードしたエクセルファイルでマクロが含まれている場合にこのような警告が表示されます。

 

エクセルのマクロは強力なので、セキュリティにかかわる不具合を生じる可能性がないとはいえません。

官公庁のようなところの提供するエクセルファイルなら、まずは大丈夫かとは思います。

が、身元の不明なところからダウンロードしたファイルを開く場合はかなり注意したほうがよいでしょう。

 

実行時エラー: インデックスが有効範囲内にありません

VisualBasicのプログラム上のエラー。配列で範囲外へアクセスする場合などに表示されます。

 

VBAが文字化けする?

どうもエクセル自体が文字エンコードにはあまり強くない印象です。

とはいえVBAで文字化けの場合には以下の設定を確認しておきましょう。

「コントロールパネル>地域>場所の設定」を実行します。

f:id:apicode:20170501213405p:plain

 

「ユニコード対応ではないプログラムの言語」で「システムロケールの変更」を押して日本語に設定をしておきましょう。

f:id:apicode:20170501213409p:plain  

 

 

マクロが保存されない?

エクセルには「.xlsx」や「.xlsm」といったファイルの保存方式があります。

 

「.xlsm」はマクロ有効なエクセルで、「.xlsx」だとマクロは保存されません。

 

間違えて「.xlsx」形式で保存してしまうと、マクロの情報がなくなってしまうことになります。

 

 

 

その他のエクセルの不具合はこちら。 

apicodes.hatenablog.com

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 また、当サイトの情報によって生じたいかなる損失について一切の責任を負いません。 あらかじめご了承ください。