AIと戦って、あなたの人生のリスク診断 >>

エクセル2010にて
リボンに自分専用のタブを追加し、そこにアイコンを登録して、マクロを実行しています。

このマクロが書かれているエクセルファイルを別のパソコンで使うと、自分専用のタブは表示されないと思います。

表示されるようにするにはどうすれば良いのでしょうか?

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

A 回答 (5件)

VitaminBB様


補足で質問していただければ、スムースな回答段取りができるので、他の方にもそうしてあげてください。
さて、再質問の内容は、
 リボンとマクロの関連付けは自動で行われるのでしょうか?
 それとも、手動で一つずつ登録するのでしょうか?
でしたね。

私の記憶では関連付けはもちろん自動的に行われ再登録は不要だったはずです。確認は容易なのでトライしてみてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

やってみたら、おっしゃるとおりでした。
現時点は、この方法が現実的ですね。

お礼日時:2014/07/15 20:31

No1No3です。



マクロでの操作は説明されていませんが、以下のページにリボンのカスタマイズ方法が記載されています。こちらなども参考にしてみてはいかがでしょう。

http://www.ka-net.org/ribbon.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2014/07/15 20:30

> Dim tsks As Tasks  ← ユーザー定義型は定義されていません



該当ページにも説明がありますが、掲載されているコードはMicrosoft Project を使ってのコードになります。エクセルでそのまま該当コードを実行というわけにはいけません。とりあえずかなり面倒な感じですので残念ながら私も説明しきれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ちょっと難しそうなので、今回はこの方法はあきらめます。

お礼日時:2014/07/15 20:29

VitaminBB様


マクロを別のPCで使いたいのであれば、マクロ有効テンプレート"*.xltm”を作って別のPCのExcel規定フォルダーにそれを保存すればいいです。
自分専用のタブとリボンを使いたというのであれば、リボンのユーザー設定でご自分のリボンをエクスポートし、できた"Excel Customizations.exportedUI"を別のPCで読み込む必要があります。
つまりリボンはリボン、マクロはマクロで別々に対応する必要があります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

リボンとマクロの関連付けは自動で行われるのでしょうか?
それとも、手動で一つずつ登録するのでしょうか?

お礼日時:2014/07/14 20:44

起動s時にタブが存在しなければ作成するマクロ、終了時にタブを削除する自動実行マクロを含ませておく。



自動実行マクロに関して参照してください。
http://www.relief.jp/itnote/archives/002947.php

リボンの操作の参考にしてください。
VBA を使用してリボンに独自のコマンドを追加する
http://msdn.microsoft.com/ja-jp/library/office/e …(v=office.14).aspx

リボンの操作はかなり面倒そうな感じなので、起動時に該当マクロが実行されるようにするか、何かの画像もしくはボタンをシート上に配置してそれにマクロを登録する方法が簡単だと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

参考サイトのコードを実行したら、以下のエラーがでました。
対処方法が、お分かりでしたら、教えていただけますか。

Dim tsks As Tasks  ← ユーザー定義型は定義されていません

お礼日時:2014/07/14 20:05

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

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

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

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

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

Q別のパソコンでエクセルのマクロを使いたい

マクロの自動記録で保存したエクセルファイルを別のパソコンで使用したいのですが方法が分かりません。
この質問サイトにも同様のものがありましたが、よく解りませんでした。

以下、質問サイトを抜粋しました。
---------------------------------------------------------------------------
エクセルマクロファイルをメモリ等に保存し、エクセルを開いてマクロを有効にしてください。
 ツール→マクロでマクロ一覧が出て来て対象のマクロを選択、編集をクリックするとマクロ構文(VBE)が出てきます。・・・・・以下、略
---------------------------------------------------------------------------

ここでまず、エクセルマクロファイルをメモリに保存して、別のPCでエクセルファイルを開いてもマクロが出てきません。

いろいろ試してみたのですが、最初に作成したマクロはPERSONAL.XLSが含まれていましたが、メモリに保存されていなかったようです。

PERSONAL.XLSを表示させてそれだけを保存すれば、確かにそちらにはマクロが入っていました。

PERSONAL.XLSも一緒に保存するにはどうすればいいのでしょうか?

マクロの自動記録で保存したエクセルファイルを別のパソコンで使用したいのですが方法が分かりません。
この質問サイトにも同様のものがありましたが、よく解りませんでした。

以下、質問サイトを抜粋しました。
---------------------------------------------------------------------------
エクセルマクロファイルをメモリ等に保存し、エクセルを開いてマクロを有効にしてください。
 ツール→マクロでマクロ一覧が出て来て対象のマクロを選択、編集をクリックするとマクロ構文(VBE)が出てきます。・・・・...続きを読む

Aベストアンサー

こんばんは。

>保存先を個人用マクロ ブックで作成したものですが、これだと、別のパソコンに移すことは出来ないのでしょうか?

絶対にできないわけではありませんが、Excel等の個人用マクロブックの持ち出しはお勧めできません。例えば、どんなトラブルがあるかと言われても、具体的にコピーして移動したからということではないのですが、そのままでも、時々トラブルが発生するから、というしかありません。

>出来なければ、個人用マクロ ブックで作成したマクロを「作業中のブック」に保存しなおすことはできないのでしょうか

一旦、「作業中のブック」と選択しておいて、「ひとつのセルをクリック」すれば、仮のマクロが、Module(1) の中に、Sub Macro1() と出来上がります。そこに、Personal.xls を開いて、Module(1) にコードをコピー&ペーストすればよいです。

もう一つの方法は、モジュール全体をテキストにしてエクスポートする方法です。モジュールを右クリックすると、[ファイルのエクスポート]と出てきますから、それで出力して、それをUSBメモリ等に入れ、他のPCのExcelで、今度は、逆に、[ファイルのインポート]とすれば、モジュールのマクロコード全体が入ります。

なお、個人用マクロブックは、なるべく不要なマクロは置かないようにしてください。そうしないと、起動に時間が掛かったりするようになります。

私自身は、わざわざExcelブックやWordのドキュメントを、USBメモリにコピーしないで、マクロのコードを、メモ帳(NotePad)に貼り付け、テキスト保存して、それを別のパソコンのExcel等のModuleに貼り付けることもあります。よほど特殊なマクロでない限りは、これで十分です。

こんばんは。

>保存先を個人用マクロ ブックで作成したものですが、これだと、別のパソコンに移すことは出来ないのでしょうか?

絶対にできないわけではありませんが、Excel等の個人用マクロブックの持ち出しはお勧めできません。例えば、どんなトラブルがあるかと言われても、具体的にコピーして移動したからということではないのですが、そのままでも、時々トラブルが発生するから、というしかありません。

>出来なければ、個人用マクロ ブックで作成したマクロを「作業中のブック」に保存しなおすことはでき...続きを読む

Qエクセルでマクロを別のPCで利用するには

あるPCで利用しているエクセルのマクロを、別のPCのエクセルで利用したいのですが。
両PCとも、OSはWinXP_SP2でエクセルは2003です。
(2つのPCはオンライン上にありません)

Aベストアンサー

 別のPCのエクセルで利用するにはUSBメモリ、FDD,
CD-ROMで出来ます。
 私も自分で作ったマクロをこれらに入れ、会社で使っています。
 そのマクロがそのPC、エクセル上で動作するPERSONAL.XLSなのか、そのファイル、ブックのみの作業中のものだけか、開いている全てのブックに適用によって変わってきます。

 以前私もこれが分からなくて、この掲示板で教えていただきました。
 そのエクセルマクロファイルをメモリ等に保存し、エクセルを開いてマクロを有効にしてください。
 ツール→マクロでマクロ一覧が出て来て対象のマクロを選択、編集をクリックするとマクロ構文(VBE)が出てきます。

 ドライブのパス(E:\,C:\,D:\)ファイル、シート名を変更してやれば、定型作業の場合は同じ動作を忠実に実行すると思います。

 間違いがあれば、デバック画面が出て来て、警告のコメントが出ます。それを調べれば、どこにエラーがあるか、分かるようになって来ます。

 私は家のPCと会社のPCがリムーバブルドライブの表示が家PCはHやIで出るので会社ではE:\にパスを変えています。後は開くファイルの期日を変えています。これで数秒で処理が終わるのでチャレンジしてみてください!

 別のPCのエクセルで利用するにはUSBメモリ、FDD,
CD-ROMで出来ます。
 私も自分で作ったマクロをこれらに入れ、会社で使っています。
 そのマクロがそのPC、エクセル上で動作するPERSONAL.XLSなのか、そのファイル、ブックのみの作業中のものだけか、開いている全てのブックに適用によって変わってきます。

 以前私もこれが分からなくて、この掲示板で教えていただきました。
 そのエクセルマクロファイルをメモリ等に保存し、エクセルを開いてマクロを有効にしてください。
 ツール→マクロでマ...続きを読む

QEXCELのマクロが他のパソコンで動かない

マクロ初心者なのですが、どなたか教えてください。

自作のツールバーのボタンを押したら
そのボタンに対応するCSV形式のファイルから
データをひっぱってきて、自動でグラフ化するという
マクロを作りました。

私のパソコンでは正常に動くのですが
他の人のパソコンでそのファイルを開くと、
「このブックにあるVBAプロジェクト、
 ActiveXコントロール、およびその他のプログラミン
 グ関連の機能は失われています」
というメッセージボックスが出てきて
マクロが使えないんです。

私には全く理由が分からないので、どんな手がかりでも
いいので教えて下さい(;_;)よろしくお願いします。

Aベストアンサー

こちらのケースが該当するのではないでしょうか。

VBA が有効でないときに使用できない Excel の機能
http://support.microsoft.com/default.aspx?scid=kb;ja;282847

原因としては
1)Excel 2002 をインストールするときに、VBA のインストール設定を [インストールしない] にしている
2)システム ポリシー [Disable VBA for Office Applications] を使用している
などが考えられるようです。

1)についてはこちら。
Office アプリケーションのマクロウイルス対策(「VBA をインストールしない」の項)
http://www.microsoft.com/japan/office/previous/xp/techinfo/macrovirus/against.asp
Visual Basic for Applications をインストールする手順
http://support.microsoft.com/default.aspx?scid=kb;ja;281952


2)についてはこちらが参考になるかもしれません。
Microsoft Office XP のセキュリティ設定(「Disable VBA for Office applications」の項)
http://www.microsoft.com/japan/technet/security/guidance/secmod56.mspx

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;282847

こちらのケースが該当するのではないでしょうか。

VBA が有効でないときに使用できない Excel の機能
http://support.microsoft.com/default.aspx?scid=kb;ja;282847

原因としては
1)Excel 2002 をインストールするときに、VBA のインストール設定を [インストールしない] にしている
2)システム ポリシー [Disable VBA for Office Applications] を使用している
などが考えられるようです。

1)についてはこちら。
Office アプリケーションのマクロウイルス対策(「VBA をインストールしない」...続きを読む

QSub ***( ) と Private Sub ***( ) の違い

初歩的な質問で申し訳ありませんが・・・

自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。
ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。

Sub ***( ) と Private Sub ***( ) の違いは何なんでしょうか?
どなたか説明頂けませんか?
よろしくお願いします。

Aベストアンサー

「Sub」の部分にカーソルを置いて[F1]を押せばヘルプが起動します。
「指定項目」のところに「Public」と「Private」の説明がありますよ。
省略して「Sub hogehoge()」とした場合は「Public」とみなされます。

Publicは「すべてのモジュールから呼び出せるプロシージャ」ということになります。
Privateとすると「同じモジュールの中からしか呼び出せないプロシージャ」となります。

もしExcelをお持ちでしたらExcelのVBEで標準モジュールを追加し、「Sub Test1()」と「Private Sub Test2()」を作成してみてください。
そしてExcelの[ツール]-[マクロ]-[マクロ(Alt+F8)]でマクロ実行のダイアログを表示させてみるとわかります。
ここには実行できるプロシージャの一覧が表示されますが、Test1は表示されているけれどTest2は表示されません。
Test1はPublicで、Test2はPrivateだからです。

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Qエクセル VBA ユーザーフォームを閉じる

ユーザーフォームを開く時は
UserForm1.Showですが
閉じる時は?
UserForm1.Close
だとコンパイルエラーになります。
End
にするしかないですか?

Aベストアンサー

Unload Me とか Unload UserForm1 でユーザーフォームを閉じることができます。

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

QEXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

Aベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Ce...続きを読む

QVBA オブジェクトが空かどうか判定する

皆様のお知恵を拝借させてください。

エクセルVBAでオブジェクトを入れる変数を定義し、その変数にオブジェクト
が入っているかどうか検査したいのですがどうしたらいいでしょうか。

例えば---
Dim a As Workbook
If a <> nothing then ←この部分が分からない。このままだとエラー。
処理
End if
---------
環境
エクセル2003
WinXPsp1

Aベストアンサー

もし、aが空だったら
If a Is Nothing Then 

もし、aが空じゃなかったら
If Not a Is Nothing Then

Qエクセルで個人用マクロの配布方法

このたびわたしが作成した業務用の簡単なマクロを社内の他部門(遠隔地)の10名ほどのかたがたにメールで配布して使っていただくことになりました。

自分では個人用マクロブックに登録し、任意のエクセルのシートに対して使用していたものです。
一応そのマクロだけをエクスポートしてModule1.basというファイルは作ったのですが、これまでマクロそのものを配布したことがないので送った先の人にどうインポート方法を説明したらよいのかわかりません。多分マクロはよく知らないひとたちのはずです。
いい説明方法があれば教えてください。

Aベストアンサー

> 成功しました!!他の端末へのインストールも出来ました。

おお!それは、よかった!(^^)

> 再度送付してあげれば相手のアドインは上書きされると思ってよい
> のでしょうか?

ええ、最初から修正やバージョンアップはあるものとして、考慮して
ましたから、その手順で大丈夫ですよ。

それでは、さらに一歩進んで、、

アドイン化したものは、どんな時に実行されるか保証されないので、
注意が必要です。つまり、ActiveSheet がない状態でメニューを
クリックすることも、あり得るってことです。この場合、エラーの
発生が予想されますね。

エラーが発生して、「デバッグしますか?」と聞かれたり、デバッグ
モードの VBE 画面がでてきたら、初心者の方はビックリしてしまう
でしょう。

ですから、コードの冒頭でそれをトラップしてやらなければなりま
せんし、VBA プロジェクトも保護しておいた方が良いでしょう。

VBA プロジェクトの保護は、VBE のプロジェクトエクスプローラーで
MyADDIN を選択し、右クリック[VBA プロジェクトのプロパティー]
から行います。

トラップの方法は、例えば Selection ならセル以外が選択されて
いてはマズイ場合、

IF Ucase$(Typename(Selection))<>"RANGE" Then Exit Sub

のようにコードの冒頭に書き込みます。On Error ~ ステートメント
も必要があれば使います。

関数もワークシート関数として使われたくない場合は Private Function
にしてしまうか、次のように Caller を使ってトラップします。

Function Test(A As Variant) As String

  ' ワークシート関数として使えないようにする
  If UCase$(TypeName(Application.Caller)) = "RANGE" Then
    Exit Function
  End If

  '~ 処理 ~

End Function

こうすると、VBA からしか使えない関数になります。

この辺は、場数を積めば勘処が養えるので、無理に今全部やる必要は
ありません。エラーが発生したときに困ったら、読み返してみて下さい。

以下は、余談です。

・プロシージャ Count_Net の

x = ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Count).Row



x = rngTarget(rngTarget.Count).Row

の方が良いと思います。

・プロシージャ Del_Sqt について

これは、前回のご質問のやつですよね。そちらに手が回らず、済みません。


アドイン化、、大変だったと思いますが、いろいろやってみて下さい。
自分にとって都合がよく便利で、自分だけのツールが作れますよ。

では、頑張って下さい。

あ、慣れてきたら、アドインの名前はもっとセンスのいいヤツに変えて
下さいね。MyADDIN って適当につけたヤツなので(^^;)

> 成功しました!!他の端末へのインストールも出来ました。

おお!それは、よかった!(^^)

> 再度送付してあげれば相手のアドインは上書きされると思ってよい
> のでしょうか?

ええ、最初から修正やバージョンアップはあるものとして、考慮して
ましたから、その手順で大丈夫ですよ。

それでは、さらに一歩進んで、、

アドイン化したものは、どんな時に実行されるか保証されないので、
注意が必要です。つまり、ActiveSheet がない状態でメニューを
クリックすることも、あり得るってこと...続きを読む


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

人気Q&Aランキング