Excel2013を使っています。OSはWIN7です。

とあるマクロを実行する為のボタンが組み込まれているシートがあり、
月が変わるごとに、(そのマクロボタン付きの)「テンプレート」と名前を付けているシートを「移動またはコピー」からコピーして、同じファイルないに新しくシートを付け足していく方法でシートを増やしていっていました。

先月までは上記の方法でまったく問題なく、「テンプレート」というシートと同じ内容のシートがマクロボタン付きでコピー(同じファイル内に新しく作成)出来ていたのですが、急に出来なくなりました。

とても困っています。

どうしたらいいのでしょうか?

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

A 回答 (1件)

こんにちは!



もしかして、Windowsのアップデートの影響かもしれません。

コントロールパネル → Windows Update → 更新履歴の表示 → 画面上側にある
「インストールされた更新プログラム」と進み

Excel2013の場合は
KB2726958
をアンイストールしてみてください。

Excel2010の場合は
KB2553154

Excel2007の場合は
KB2596927

となります。

他の原因ならごめんなさいね。m(_ _)m
    • good
    • 1
この回答へのお礼

さっそくの回答ありがとうございました。

教えていただいた方法でExcel2013なのでKB2726958を探してみたのですが、見つからず、
KB2726958でネット上で検索を掛けてみたところ、下記のサイトがみつかり、

方法はちょっと違うものなのですが、そちらで解決する事が出来ました。

http://pc.mogeringo.com/archives/51928

KB2726958の件を教えていただけなければ、たどり着けないサイトでした。

本当にありがとうございました。

お礼日時:2015/01/07 15:22

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

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

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

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

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

Qエクセルのxlsmファイルでマクロの実行について

今まで実行できていたエクセルのxlsmファイルのマクロが
最近になり実行が出来なくなってしまいました。

正常に動いていた頃はブック上のマクロ開始ボタン上ではポインタが矢印になり
実行できていた記憶があるのですが現在では開始ボタン上でも
ポインタはエクセル標準のプラスポインタのままで変化がありません。

マクロのセキュリティ設定などを変更しても何も変化はありませんでした。

過去に複数バックアップをとってある全てのブックにおいて
同じ症状が出ているのでブック自体が壊れているとは考えにくいです。

正常に動いていた時と現在との違いとして心あたりあるのが
ノートパソコンのバッテリー切れでエクセル、ワード、visualstudio等が途中で終了してしまい
再起動時に何か警告メッセージのような物が出ていた記憶があるのですが
その時は不具合を確認できなかったのでメッセージの記録などはしていませんでした。

何か解決方法があればぜひ教えていただきたいです。
よろしくお願いします。

Aベストアンサー

マイクロソフトから修復方法が出されています。

http://support.microsoft.com/kb/3025036/ja
「現象 1 の解決方法」からFixItボタンをクリック、ダウンロード、実行します。
KBのアンインストールは必要なくなりました。

Qexcelコマンドボタンと内容を別ファイルにコピー

excelコマンドボタンのボタンイメージと内容を同時に別ファイルにコピーするには?

excelシートに設置したにコマンドボタンを
別ファイルの別シートにそのままコピーして使いたいと思っています。

ところが、コピー&貼り付けすると、ボタンのイメージはコピーされるのですが、
Private Sub CommandButton1_Click()に記載されている内容が一緒にコピーされません。

このマクロボタンと機能を別シートでも同じように使用したいのですが、
簡単にコピーできる方法はありますか?

Aベストアンサー

「Private Sub CommandButton1_Click()」は「ボタンに憑いている」のでは無いので、ご質問の事は全く出来ません。

出来る方法:
○シートごとコピーする
○マクロの内容をコピーする

のいずれかになります。



別の方法:
エクセルのボタンには
・ご質問で使った「ActiveXコントロール(コントロールツールボックス)」のコマンドボタン
・フォームコントロールのコマンドボタン
・図形や画像ファイルなどを右クリックしてマクロの登録して作成したボタン
などを利用する方法があります。
それぞれ作り方や使い方が違うので、ご質問の際には具体的にどれを使ったのか(使いたい理由があるのか)キチンと除法提供するようにしてください。

で、ご質問のボタンじゃなく「フォームコントロール」若しくは「図形にマクロ登録」のやり方で、
1.マクロを個人用マクロブックに記載する
2.ボタンにマクロを登録する

としておくことで、ボタンだけをコピーして別のブックに貼り付け、そのまま問題なく使用する事が出来ます。繰り返しますがこの方法は、ご質問の「Private Sub CommandButton1_Click()」のマクロやボタンでは、利用できないので間違えないようにしてください。

「Private Sub CommandButton1_Click()」は「ボタンに憑いている」のでは無いので、ご質問の事は全く出来ません。

出来る方法:
○シートごとコピーする
○マクロの内容をコピーする

のいずれかになります。



別の方法:
エクセルのボタンには
・ご質問で使った「ActiveXコントロール(コントロールツールボックス)」のコマンドボタン
・フォームコントロールのコマンドボタン
・図形や画像ファイルなどを右クリックしてマクロの登録して作成したボタン
などを利用する方法があります。
それぞれ作り方や使い方...続きを読む

QVBA シートをコピー後、ボタンにマクロ登録

お世話になっております。
Excel2003を使用しております。
分かる人にはすぐ分かる問題かもしれませんが、
良くわからないため教えて下さい。

シートを別ブックにコピーします。(ここまでは出来ています。)
元々あったボタンを選択し、
マクロを登録しなおそうとするも、上手く行かず…

Dim StaticBook as Workbook と宣言し、
コピー先のブックを選別?できるようにしています。

そのため、シートをコピーした後に
With StaticBook.ActiveSheet
  .Shapes("Button 1").Select     
Selection.OnAction = StaticBOOK.Name & "!Sheet2.保存_Click"
.Shapes("Button 2").Select
Selection.OnAction = StaticBOOK.Name & "!Sheet2.再編集_Click"
.Range("A1").Select
End With
としてみたのですが、エラーが表示されます。

ButtonクラスのOnActionプロパティを設定できません。と表示されます。

元々、コピーすれば上手く動くとおもっていたのですが、
ボタンをクリックしたときの参照先が
コピー元のブックのままになっておりこれの改善方法がしりたいのです。

調べてみてもあまり良く分からず…
回答お願い致します!

お世話になっております。
Excel2003を使用しております。
分かる人にはすぐ分かる問題かもしれませんが、
良くわからないため教えて下さい。

シートを別ブックにコピーします。(ここまでは出来ています。)
元々あったボタンを選択し、
マクロを登録しなおそうとするも、上手く行かず…

Dim StaticBook as Workbook と宣言し、
コピー先のブックを選別?できるようにしています。

そのため、シートをコピーした後に
With StaticBook.ActiveSheet
  .Shapes("Button 1").Select     
...続きを読む

Aベストアンサー

こんにちは。

そのようなコードは書いたことがありませんし、きちんと考えたことがありませんでしたが、
コードをよく観ると

>StaticBOOK.Name & "!Sheet2.保存_Click"
このSheet2 は、オブジェクト名ですから、ただしく、Sheet2であればよいのですが、そうでない可能性が高いです。もちろん、シートに一意のオブジェクト名をつければよいはずですが、コピーをされるシートですから、名前付け管理していくのは面倒だと思います。それより、システム側のオブジェクト名を取るほうが早いと思います。例えば、このようなスタイルになるのではないでしょうか。
以下の .CodeName というのが、シートのオブジェクト名になります。


'//
Sub Test1()
  Workbooks("Origine.xls").Activate '元のシートをアクティブにする
  ActiveWorkbook.Worksheets("Sheet2").Copy Before:=Workbooks("Destin.xls").Sheets(1)
  
  With ActiveSheet
   .Shapes("Button 1").OnAction = .Parent.Name & "!" & .CodeName & ".保存_Click"
  End With
End Sub
'//

こんにちは。

そのようなコードは書いたことがありませんし、きちんと考えたことがありませんでしたが、
コードをよく観ると

>StaticBOOK.Name & "!Sheet2.保存_Click"
このSheet2 は、オブジェクト名ですから、ただしく、Sheet2であればよいのですが、そうでない可能性が高いです。もちろん、シートに一意のオブジェクト名をつければよいはずですが、コピーをされるシートですから、名前付け管理していくのは面倒だと思います。それより、システム側のオブジェクト名を取るほうが早いと思います。例えば、この...続きを読む

QEXCEL VBA コントロールのコピー&ペースト

いつも活用させて頂いております。

excelのvbaで、コピー元のセルを範囲指定して、ペーストするロジックを書いています。
コピー元のセルには、コントロール(テキストボックスなど)が配置されているのですが、これを一緒にコピー&ペーストする事はできないでしょうか?
一緒にできないのであれば、セルのコピー&ペーストのあとにコントロールのコピー&ペーストができるような方法があれば、ご教授願います。

よろしくお願い致します。

Aベストアンサー

コントロールは編集モードならコピーできると思いますが、実行モードで普通にコピー&ペーストを行ってもできないと思われます。素人の力技ですが下記マクロを作ってみました。おもしろい問題でけっこうはまってしまいました。
長くなるので選択状態のチェック等は行っていません。m(_ _)m
同一シートのみで可能です。標準モジュールに貼り付けます。
ショートカットキー Ctrl+Shift+A 等に割り当てて下さい。
コピー元を選択し、コントロールキーを押しながら貼り付け先の左上セルを選択します
順番は逆でもかまいません。複数セルが含まれる矩形セル範囲と単一のセルが指定されていることが要件です。
(これは単一セルと単一セルのコピーと他シートへのコピーは対応していません。)
参考にして下さい。

Public Sub ShapesCopy()
Dim rgCopy As Range 'コピー元セル範囲
Dim rgPaste As Range '貼り付けるセル(左上)
Dim rgShape As Range 'コピー元にあるコントロールの左上セル
Dim myShape As Object '1つのコントロール
Dim rowCopy, clmCopy As Long 'コピー元の左上セルの行、列番号
Dim rowPaste, clmPaste As Long '貼り付けるセルの行、列番号
Dim disRow, disClm As Long 'コピー元と貼り付け先の行・列の隔たり

'*** 選択セルをコピー元と貼り付け先に分離 ***
With Selection
If .Areas(1).Count = 1 Then
Set rgCopy = .Areas(2)
Set rgPaste = .Areas(1)
ElseIf .Areas(2).Count = 1 Then
Set rgCopy = .Areas(1)
Set rgPaste = .Areas(2)
Else
Exit Sub '厳重なチェックは省略しています。
End If
End With

'*** コピー元と貼り付け先の隔たりを計算 ***
rowCopy = rgCopy.Cells(1, 1).Row
clmCopy = rgCopy.Cells(1, 1).Column
rowPaste = rgPaste.Cells(1, 1).Row
clmPaste = rgPaste.Cells(1, 1).Column
disRow = rowPaste - rowCopy '行の隔たり
disClm = clmPaste - clmCopy '列の隔たり

'*** コピー実行 ***
'===== セル =====
rgCopy.Copy: rgPaste.Select: ActiveSheet.Paste
'===== コントロール =====
For Each myShape In ActiveSheet.Shapes 'シート内のコントロールを探す
Set rgShape = Range(myShape.TopLeftCell.Address)
If Union(rgCopy, rgShape).Address = rgCopy.Address Then
'コントロールの左上セルがコピー元内にある場合はコピーする
myShape.Copy
Range(rgShape.Address).Offset(disRow, disClm).Select
ActiveSheet.Paste
End If
Next
rgPaste.Select
End Sub

コントロールは編集モードならコピーできると思いますが、実行モードで普通にコピー&ペーストを行ってもできないと思われます。素人の力技ですが下記マクロを作ってみました。おもしろい問題でけっこうはまってしまいました。
長くなるので選択状態のチェック等は行っていません。m(_ _)m
同一シートのみで可能です。標準モジュールに貼り付けます。
ショートカットキー Ctrl+Shift+A 等に割り当てて下さい。
コピー元を選択し、コントロールキーを押しながら貼り付け先の左上セルを選択します
順番は逆でも...続きを読む

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

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

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

Aベストアンサー

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

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

QExcel2010 マクロが利用できない

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

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

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

Aベストアンサー

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

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

Qexcel2010でボタンが反応しなくなった?

EXCEL2010でシート上に作成したボタンがある時期から反応しなくなりました。
原因がわかりません。
VBAエディタで開いて、実行(f5)すると実行できます。
どうしたら元に戻るか、どなたかわかる方、お願いします。
 ・元に戻る…「Excelのシート上からボタンをクリックするだけで実行できるようになる」

1.処理自体は単純でシート上に作成したコマンドボタンをクリックすると
  標準モジュールに記述したマクロを実行します。
  Sheet1のコード (CommandButton1_Click)
     Call [標準モジュールSubの名称]ItiranGet
  ※1 VBAのコードを開いた状態で、上記のCall文、標準モジュールで
     実行(F5)すると、実行できます。
2.マクロのセキュリティは、下記に設定しています。
  すべてのマクロを有効にする

よろしくお願いいたします。

Aベストアンサー

マイクロのボケ

http://oshiete.goo.ne.jp/qa/8854617.html

業務で使う PCは WIN、ソフトなど 自動バージョンアップは 止めないと・・・・

Qexcelの拡張子xlsmが開けません

閲覧ありがとうございます。

この度、PC をwindows 10にアップグレードしましたが、office 2003を使っています。

前のPC で作成したexel シートの拡張子がxlsm なのですが、新しいPC で開くことができず、
何故かペイント?で、中身が写真3枚に変わっていました。

古いPC からUSB 保存で、その写真はUSB の別のフォルダにあったものなので、「中身が変わってしまう」ということはあり得るのでしょうか?
マクロ入りのexcelシートが4つくらい同じ現象になりました。
「オフィス互換パック」というのをmicrosoftからダウンロードしたのですが、
もとのoffice 2003と紐付いていない気がします。
それの置場所がPC のどこにあるのかがよくわかりません。
Windows 10だとexel 単体もスタートアップ画面に出てこないです。
何故かword だけはちゃんと機能しています。

この文章でご理解いただけるか不安ですが、
今まで表計算していたexel シートを開きたいのです。

Windows 10にお詳しいかたの知恵を拝借したいです。
ちなみにPC はHP14ac103TU です。

ご回答お待ちしております。
よろしくお願いいたします。

閲覧ありがとうございます。

この度、PC をwindows 10にアップグレードしましたが、office 2003を使っています。

前のPC で作成したexel シートの拡張子がxlsm なのですが、新しいPC で開くことができず、
何故かペイント?で、中身が写真3枚に変わっていました。

古いPC からUSB 保存で、その写真はUSB の別のフォルダにあったものなので、「中身が変わってしまう」ということはあり得るのでしょうか?
マクロ入りのexcelシートが4つくらい同じ現象になりました。
「オフィス互換パック」というのをm...続きを読む

Aベストアンサー

Excel を起動して、ファイルメニューから xlsm ファイルを選択しても開けませんか?もしも、この方法で開けるならファイルの関連付けが変更されただけです。下記ページのように、関連付けを変更すれば直ると思います。

https://dekiru.net/article/12837/


Office 2003 は古すぎます。Office 2003 のシステム要件に Windows 10 は含まれていませんし、既にサポートが終了しているのでセキュリティ上のリスクがあっても修正されません。

Office 2003 を使うよりは、無償の互換ソフトを使用した方が良い気がします。ただし、マクロを使用していると互換性の問題が発生することがあります。

http://www.forest.impress.co.jp/library/software/libreoffice/


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

人気Q&Aランキング

おすすめ情報