Excel2010 で、マクロが利用できません。

マクロのセキュリティを「全てのマクロを有効にする」に設定してもマクロが利用できません。

また、Excel2007で作成したマクロのファイルを開くと修復され、マクロのソースが消えます。

「Excel2010 マクロが利用できない」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (1件)

>Excel2010 で、マクロが利用できません。


Excel2010では、マクロが使える拡張子(.xlsm)とマクロが使えない拡張子(.xlsx)があります。そのため、マクロを使いたいときは、Excelを起動したら、「ファイル」→「名前を付けて保存」を選び、ファイルの種類を「マクロ有効ブック(.xlsm)」と選択し名前を付けて保存してあげれば、その保存したExcelファイルはマクロが使えるようになっているはずです。

>また、Excel2007で作成したマクロのファイルを開くと修復され、マクロのソースが消えます。
すいません。Excel2007は利用したことがないのでわからないです。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル(マクロ記録)

よろしくお願いします。
エクセルで、印刷マクロを作ろうと考えています。
             (基本、入門者です)
マクロ記録で、作っていますが、
記録終了するたびに「 印刷 」がかかっては、
用紙が何枚あっても足りません。

いい考えがありましたら、お教えください。
お願いします。

Aベストアンサー

#3の回答者です。

>出来たら、この i=1 の意味を教えていただけませんでしょうか?
単に、それはページ数です。

ヘルプを引用します。(PrintOut で調べました)

式.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas)

From オプション 印刷を開始するページの番号を指定します。この引数を省略すると、最初のページから印刷します。
To オプション 印刷を終了するページの番号を指定します。この引数を省略すると、最後のページまで印刷します。

と出てきます。

QExcel2003について、ご指導お願いします。マクロの機能を、利用し

Excel2003について、ご指導お願いします。マクロの機能を、利用しようと考えています。マクロそのものの、操作の記録は、面倒だが慎重にすれば、何とか克服出来そうです。しかし、どのファイルでも利用できるらしい、”個人用マクロブック”の作成に当たり、Excelで、ツールバーの何も無い部分をダブルクリックし、”ユーザー設定”ダイアログを出し、コマンドタブの分類にマクロが有り、それを選択し、右側に現れた”ユーザー設定ボタン”をツールバー上に、ドラッグアンドドロップしようとしても、操作中にポインターの側に×印が現れます。従って、”ユーザー設定ボタン”がツールバー上に作る事が出来ません!!何が悪いのでしょうか?何方か、詳しい方ご指導お願いします!!

Aベストアンサー

>右側に現れた”ユーザー設定ボタン”を
>ツールバー上に、ドラッグアンドドロップしようとしても
>操作中にポインターの側に×印が現れます

恐らくツールバー上にドラッグしたのではなくて、
ツールバーの表示されている領域の、"空いてる"部分にドラッグしたのでしょう。

ドラッグする場所はツールバーの色々表示されている【ボタンの間】です。
例えば、セルの塗りつぶしの色(バケツ)とフォントの色ボタンの間とか。。

もちろん、既出の回答にもある、画面の一番上のメニューバーにもドラッグできます。
これも当然ながら、表示されてるボタン(ファイルとか編集とか。。)の間にドラッグです。

外しましたらご容赦願います。
以上です。

Qエクセル マクロコードの記述の勉強

独学でエクセルでのマクロのコード記述ができるようになりたいのですが、コードがかける人はどのようにしてかけるようになったのでしょうか?

プログラミング関係にはまったくの初心者なので、入門本を立ち読み程度読んでみたのですが、「面白そうだが、かなり手強そう」というような印象でした。

現実的な問題として、実際にコードをかける人は、プログラミング関係の学校等で学んだ人ぐらいしかいないのでしょうか?

めざすレベルはエクセルでこうしたいと考えたものを調べながらコードをかける程度のレベルです。

Aベストアンサー

> 実際にコードをかける人は、プログラミング関係の
> 学校等で学んだ人ぐらいしかいないのでしょうか?

そんな事ないです。私も独学で覚えましたから。

エクセルはマクロ記録がありますので、実際の操作を記録して書かれたコードを追っていったり、書き直したり出来ます。
VisualBasicEditor画面でコードにカーソルを置き、F1キーを押すとVBAヘルプ(たしか標準ではインストールされないので追加インストールの必要がある)が開くので、意味を調べたり、サンプルコードを見たりして覚えて行きました。
ネットにも沢山サンプルがありますし。

変数の使い方とforやif等を覚えてマクロ記録を直すだけでも結構便利になります。

QExcelマクロの勉強を始めました マクロの記録で保存先を個人用マクロ

Excelマクロの勉強を始めました マクロの記録で保存先を個人用マクロブックにしようとすると ”起動フォルダにある個人用マクロブックは記録のために開かれた状態でなければなりません”とのメッセージです
ところが表示タブのウィンドウの再表示をクリックしようにもグレイになっていてクリックできません

さっぱり訳が分からずお手上げです どういったことが考えられるでしょうか
何かヒントでもよろしくお願いします
なお WindowsXP オフィス2007を使っています

Aベストアンサー

「使用できないアイテム」に設定されているのかも知れません。
以下のような操作を試してみてください。

Microsoft Officeボタンをクリックし、「Excel のオプション」をクリック
左側のウィンドウで「アドイン」をクリック
右側のウィンドウの「管理」ボックスの一覧で「使用できないアイテム」を選択して、「設定」をクリック
一覧に表示されている「個人用マクロブック(personal.xlsb)」をクリックし、「有効にする」をクリック

Qエクセルについているマクロが出てこない・・・

 エクセルをひらき、ツール→マクロ→マクロでマクロの作成ができると聞きましたが、私のエクセル2002ではマクロのその機能が空欄状態です。復帰や回復できる方法を教えて下さい。

Aベストアンサー

(1)自分でマクロの記録を採る。
    ツールーマクロー新しいマクロの記録
(2)または他人がマクロの記録をとった。
   (3)他人がVBAコード(プログラム)を組んだ
    ツールーマクローVBEープログラム作成
場合に出てくる。(1)(2)(3)ともやっていないから、出てこないのは当然。
(1)なぞはマクロの画面でマクロー編集でコードが見れます。
ーーー
本でもWEBでも、マクロに関する本1冊か、「エクセル マクロ」でWEB照会して、勉強し。予備知識をえるべきです。

QEXCEL2010でふりがなマクロを実行したら

EXCEL 2003で作成したファイルをEXCEL 2010で開いて、以下のマクロを実行しました。

Private Sub CommandButton1_Click()
Selection.SetPhonetic
Selection.Phonetics.Visible = True
End Sub

約4500行ある名前(テキストからのコピペ)全ての行にふりがなを振るためです。
ところが、EXCEL 2003ではほんの数秒で完了するのですがEXCEL 2010で実行した時
10分以上掛かりました。
何か解決策はあるのでしょうか。

因みにEXCEL 2003はWindowsXP、EXCEL 2010はWindows7、それぞれのマシンで
今後も同じマクロを実行する状況にあります。

Aベストアンサー

excel2007でOSはvistaの環境下で4500件ほどテストしていましたが、提示されているマクロを使ってみましたが20秒ほどで終了しましたね。

なぜでしょうか?

もしかして、ファイルに関数などが入っていて都度計算とかしていませんか?
それが原因ならば、計算の自動を手動に変えれば早くなると思いますが・・・
仮に原因がそれならば、下記のもので早くなるとは思うのですが・・・

Private Sub CommandButton1_Click()

Application.Calculation = xlCalculationManual

Selection.SetPhonetic
Selection.Phonetics.Visible = True

Application.Calculation = xlCalculationAutomatic


End Sub


現象が再現されれば、良かったのですが原因がつかめないので推測でごめんなさい。

Qエクセル2010で作成したマクロ

エクセル2010で作成したマクロブックがあります。
このエクセルを知人にメールで送りました。

知人のエクセルは2007です。
マクロブックのフォームボタンを押しても何も動作しない状況との事です。

エクセル2010で作成したマクロブックはエクセル2007と互換性がないのでしょうか?

素人の質問で申し訳ありませんが、ご指導お願いいたします。

Aベストアンサー

>エクセル2010で作成したマクロブックはエクセル2007と互換性がないのでしょうか?

ご相談の状況からすると、まずそういう事はありません。
まぁ2010でしか動かない内容であなたがマクロを作成した可能性は確かにありますが、その場合でも「何も動作しない」という事はありません。ふつーにエラーが出て止まります。



一応あなたの側で確認しておくべきポイントとしては、
○間違ったブックを送っていないか再確認する
 ・ちゃんとマクロを付けたブックを送ったか確認する
 ・名前を付けて保存でファイルの形式をマクロ有効ブックにして保存したのを送ったか再確認する
といったところをよく確認してください


先方に対してあなたが確認すべきポイントとしては、
○「何も起こらない」とは、具体的にどんな状況なのか再確認する
 ・ホントにうんともすんとも反応が無いということなのか
 ・実は何かエラーメッセージっぽいダイアログが現れて、OKをクリックしてもマクロが動作した様子が無いとかの状況では無かったか



具体的な状況が明らかになったら、ようやく対処を検討する事ができるようになります。
●そもそもどういうマクロを作成したのか、ご自分の作成したマクロをよく確認して、「反応が現れない」マクロを書いてたんじゃないのか再確認する
 たとえば無意味にon error resume nextのような仕込みをしてたりしないか
 たとえば不適切なデータに対して何も作動せずに終わってしまうようなそもそも作りにしてたんじゃないか
 とか。

●実は何かダイアログが出てたのなら、具体的にどんなダイアログなのか正確に聞き取って、あなたの方で対処を考える
 「マクロが無効になってる」のなら、マクロを有効にして実行するように伝える
 とか。

>エクセル2010で作成したマクロブックはエクセル2007と互換性がないのでしょうか?

ご相談の状況からすると、まずそういう事はありません。
まぁ2010でしか動かない内容であなたがマクロを作成した可能性は確かにありますが、その場合でも「何も動作しない」という事はありません。ふつーにエラーが出て止まります。



一応あなたの側で確認しておくべきポイントとしては、
○間違ったブックを送っていないか再確認する
 ・ちゃんとマクロを付けたブックを送ったか確認する
 ・名前を付けて保存でファイル...続きを読む

QExcel2010のマクロについて教えてください。

今下記のマクロ
Sub SHUURYOU()
ActiveWorkbook.Save
Application.Quit
End Sub
をabc.xlsmと言うシートに書き込みボタンに貼り付けました。
又他のBookにあるdef.xlsmと言うシートにも貼り付けました。
それぞれ単独で開き書き込みをしてマクロボタンを押せば保存して終了します。
しかしabc.xlsmとdef.xlsmが同時に開いていると一方のマクロを実行すると両方ともクローズしてしまいます。
このマクロを単独のシート(book)だけに有効にするにはどのようにマクロを書けばよいのでしょうか。
教えてください。

Aベストアンサー

Application.Quit を使用されたということは、BOOKを閉じるだけでなく、エクセル自体も終了したいという趣旨と推察します。
ですから、開いているBOOKがひとつだけなら、現状のままでBOOKもエクセルも両方とも終了して問題なかったのが、二つ開いていると、エクセルを終了させるので二つとも閉じられてしまうわけです。

もし、開いているBOOKが一つだけの場合はBOOKもエクセルも両方とも終了させる。
複数のBOOKがひらいていれば、ボタンを押したBOOKだけを終了させる。(エクセルは終了しない)

そのようなご希望でしたら

Sub SHUURYO()
    ActiveWorkbook.Save
    If Workbooks.Count = 1 Then
        Application.DisplayAlerts = False
        Application.Quit
    Else
        ActiveWorkbook.Close (False)
    End If
End Sub

としてみてください。

Application.Quit を使用されたということは、BOOKを閉じるだけでなく、エクセル自体も終了したいという趣旨と推察します。
ですから、開いているBOOKがひとつだけなら、現状のままでBOOKもエクセルも両方とも終了して問題なかったのが、二つ開いていると、エクセルを終了させるので二つとも閉じられてしまうわけです。

もし、開いているBOOKが一つだけの場合はBOOKもエクセルも両方とも終了させる。
複数のBOOKがひらいていれば、ボタンを押したBOOKだけを終了させる。(エクセルは終了しない)

そのようなご...続きを読む

Qエクセルで作成したマクロが他のシートに反映しない

必要に迫られ始めてマクロをエクセル上で作成してみました。(初心者)
そのマクロを違うエクセルファイル上でも反映させたいのですが
マクロを作ったおおもと(最初)のファイルを閉じてしまうと違うエクセルファイルを開いてもマクロが反映されていません。
マクロでの命令内容としては 
エクセル上の数字の羅列→グラフ作成→上書き保存 という手順で作りました。
他のエクセルファイルも同じように数字の羅列があります。それを同じ作業(グラフ作成→上書き保存)したいのです。
一度作ったマクロを他のエクセルファイルにも反映させるにはどうしたら良いのでしょうか?
説明がわかりにくくてすみません。
よろしくお願いします。

Aベストアンサー

マクロの記録先を「個人用マクロブック」にするのが良いと思います。
一回マクロの記録を行い「保存先」を「個人用マクロブック」にします。するとPERSONAL.XLSという特別なブックが作成されます。

このブックの標準モジュールシートに先に作ったマクロを貼り付けてください。

そうすればエクセルを開くと、どのブックでもマクロが実行可能になります

QExcel 2010マクロで挿入した画像に名前が付けられない!

Excel 2010マクロで挿入した画像に名前が付けられない!
Excel 2002で作成・使用していた画像挿入修正マクロを、Excel 2010で実行したところ、
下記プログラムの下から二行目の「ActiveSheet.Shapes(na11).Name = "ga1"」部分で
「指定したコレクションに対するインデックスが境界をこえています」とのことで
エラー!になります。

na11 = Selection.ShapeRange.ZOrderPosition
ActiveSheet.Shapes(na11).Name = "ga1"

上記の部分のみを、Excel 2010で実行すると正常に作動します。
原因がわかりません。ご指導よろしくお願いいたします。
※下記プログラムの「¥」は文字化けするため、全角に置き換えております。

------------------------------------------------------
' 画像(1)を自動配置する
If Range("AQ18").Value = 0 Then
Else
san = Range("DA17").Value
san2 = Right(san, Len(san) - InStrRev(san, "-") + 1)
d = Left(san, Len(san) - Len(san2))
myPath = pa & "¥" & a & "¥" & a & " " & b & " " & k & "¥" & d & "¥" & d & "-PHOTO" & "¥" & d & "_web"
Range("H42").Select
ActiveSheet.Pictures.Insert(myPath & "¥" & san).Select
' 画像(1)を縮小し、名前を付ける
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Width = size1
Selection.ShapeRange.Rotation = 0#
na11 = Selection.ShapeRange.ZOrderPosition
ActiveSheet.Shapes(na11).Name = "ga1"
End If
--------------------------------------------------

Excel 2010マクロで挿入した画像に名前が付けられない!
Excel 2002で作成・使用していた画像挿入修正マクロを、Excel 2010で実行したところ、
下記プログラムの下から二行目の「ActiveSheet.Shapes(na11).Name = "ga1"」部分で
「指定したコレクションに対するインデックスが境界をこえています」とのことで
エラー!になります。

na11 = Selection.ShapeRange.ZOrderPosition
ActiveSheet.Shapes(na11).Name = "ga1"

上記の部分のみを、Excel 2010で実行すると正常に作動します。
原因がわかりません...続きを読む

Aベストアンサー

下記で試してみてください。
ActiveSheet.Pictures.Insert(myPath & "¥" & san).Name = "ga1"

あるいは
With ActiveSheet.Pictures.Insert(myPath & "¥" & san)
.Name = "ga1"
' 画像(1)を縮小し、名前を付ける
.ShapeRange.LockAspectRatio = msoTrue
.Width = size1
.Rotation = 0#
End With


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング