出産前後の痔にはご注意!

Excel2003で作成した図書館員の当番表でマクロで当番表を自動作成させています。
サンプルとして用意した当番表のシートを実際の月当番表を作成するときに、シートのコピーをして作成します。シートはコピーされたのですが、そのシートに張り付けた印刷ボタン(クリックすると自動印刷)が今まで一緒にコピーされたのですが、コピーされません。
マイクロソフトの前回の問題と関係するのでしょうか?
コピーされていた古いファイルでしても同様です。

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

A 回答 (2件)

こんにちは。

お邪魔します。

> マイクロソフトの前回の問題と関係するのでしょうか?
2014/12/9のOfficeセキュリティ更新プログラムによるActiveXコントロールの一連の不具合のことでしょうか?
http://support.microsoft.com/kb/2553154
だとすると、対策はお済みでしょうか?
http://support.microsoft.com/kb/3025036/ja
それでも尚「CommandButton21問題」
(従来のコントロール名の後ろに"2"が付いた名前に変更された為コントロールの付番が"21"から始まるように見える)
等、未だ解決していない問題が幾つか残っているようですが、、、。
今回の問題の原因については、2014/12/9のアップデートであると、
特定できるまでの情報がありませんので、ハッキリとした回答は出来ません。
現在お使いのWindowsやOfficeのバージョン?、それぞれ32or64ビット?、
2003で作成したブックを2007以降のバージョン[Excel 97-2003 ブック (*.xls)]形式で保存し直しているのかどうか?、
それとも[Excel 97-2003 テンプレート (*.xlt)]なのか?
コピー元のシートにはFrameコントロール上にコントロールを配置しているか?、
等によっても、違いが出てくるのではないでしょうか。

> サンプルとして用意した当番表のシートを実際の月当番表を作成するときに、シートのコピーをして作成します。シートはコピーされたのですが、そのシートに張り付けた印刷ボタン(クリックすると自動印刷)が今まで一緒にコピーされたのですが、コピーされません。
2014/12/9のアップデートが原因である場合、
「シートはコピー出来るのにコントロールだけコピーできない」
という現象は、私の方では確認出来ませんし、ちょっと考えにくいです。
「コントロールだけコピーできない」という
現象そのものは、以前からよく質問される課題ですので、まずは定番の手順で確認をしてみてください。

Excelのオプション設定を、気づかない内に、
(コントロールをコピーしないように)変更してしまっていた場合
(もし、そうでなければ、オプション設定や警告ダイアログに関する言及がある筈です)
というのが、質問された多くのケースで原因となっていたこと、です。
XL2003なら
  [ツール]→[オプション]→[編集]
  ↓[□オブジェクトをセルとともに切り取り、コピー、並べ替える]
XL2010なら
  [ファイル]タブ→[オプション]→[詳細設定]→[切り取り、コピー、貼り付け]
  ↓[□挿入したオブジェクトをセルと共に切り取り、コピー、並べ替えを行う(_O)]
の、チェックを外れていまっているのを、チェックし直す、
または、いずれのバージョンでも、VBAから、
  Application.CopyObjectsWithCells = True
を実行する
等の手順で、シートのコピー時にコントロールもコピーされる状態に通常は戻せます。
"シートはコピーされたのですが、そのシートに張り付けた印刷ボタン...が...コピーされません。"
という説明からすると、以上の確認が先決です。
> コピーされていた古いファイルでしても同様です。
この記述の意味が私には汲み取れていません。ですので、もし見当違いでしたら、すみません。
が、状況に依っては、以上の手当てで解決する可能性もあるのかと。

次に、質問文の説明とは食い違うので、余談、ということになりますが、
「コントロールごとシートのコピーはされるがコントロールが機能しない」
というケースだった場合の話ですと、、、
MSForms.exd削除済みのWin7/Xl2010x64で、XL2003で作成した旧いブックをコピー元にして
  Workbooks.Open Filename:=""コピー元ブック名.xls"
  With Workbooks("コピー先ブック名.xlsm")
    Workbooks("コピー元ブック名.xls").Worksheets("コピー元シート名").Copy After:=.Worksheets(.Worksheets.Count)
  End With
というような記述を実行して確かめましたが、
(コピー元ブックでは[セキュリティ]の警告が表示されたままになるものの)
シートもActiveXコントロール(昔のツールバーコントロール)も見た目上は複製されました。
但し、コピー後の新しいシート上ではActiveXコントロールが機能しません。
これを機能させる為の応急処置としては、以下の手順。
  [ファイル]タブ→[オプション]→[セキュリティセンター]→[セキュリティセンターの設定]
  ↓[ActiveXの設定]
   ↓[□先に確認メッセージを表示してから、初期化に危険が伴うコントロールには制限を強化し、初期化しても安全なコントロールには最低限の制限を適用して有効にする(_R)]
   にチェックが入っているものを替えて
   ↓[□確認メッセージを表示せずに、すべてのコントロールを制限なしに有効にする(推奨しません。危険なコントトールが実行される可能性があります)(_E)]
   をチェックしておいてから、シートをコピーするマクロを実行します。
これで、コピー直後からActiveXコントロールが機能するようになりますが、
説明にもある通り、セキュリティ上の不安は拭えない状態での、暫定的な対応ということになりますから、
セキュリティ環境の確認を含めて、よく検討した上で採否を見極めるようにしてください。
あくまでも暫定的な対策として、例えば急いで処理したい時の一時的な方法として紹介しているだけです。

MS側で今後対策の予定があるかどうか、この他により安全な方法があるかどうか、
私には、解りませんし、知り得る立場でもありません。
ただ元々がセキュリティ対策としての改編だったことを考えると、
ActiveXコントロールの新旧バージョン間の互換については、
新たなMSによる積極的な対策対応について(少なくとも至近では)
期待できないものだとは私は思っています。
〓抜本的な対策〓としては、
新しいバージョン側で新規に[名前を付けて保存](作成し直す)ことを、
どこかのタイミングで検討した方がよいのかも知れません。
その方が確実なのとすぐに結果が欲しかったので、無駄になるかも知れないとは思いつつ、
私の周辺では新バージョン導入直後に、
(場合によっては警告ダイアログ上で[コンテンツの有効化]ボタン等を経て)
〓[Excel 97-2003 ブック (*.xls)]を現行の[Excel マクロ有効ブック (*.xlsm)]に書換えて〓、
対策しました(ActiveXコントロールの互換の問題は以前からありましたから)。
なので、今回の問題を再現することも私の環境では簡単ではないので、
確度の高い話は出来ませんが、今の私としては、このような回答になります。

最後に、
「Frameコントロール上に配置したコントロールだけが消えてしまう」
ということでしたらば
(Frameコントロールは本来ボタンを配置する為のものではないので話が違うでしょうけれど)
私が今知っている限りでは、新しいバージョンのブックとして、
改めてコントロールを挿入し直す、という方法ぐらいしかないように思います。

尚もお困りでしたら、補足欄にでも書いてみて下さい。
    • good
    • 2

12月の更新ファイルによる不具合の対処をしてあれば大丈夫だとおもいますが


対処済みでもそうなるのですか?
そうであれば、2010版などの新しいBookにVBAコードをコピーして使えるようにするだけで済むはずです。
    • good
    • 0

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

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

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

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

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

Qマクロ実行ボタンがコピー出来ない

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

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

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

とても困っています。

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

Aベストアンサー

こんにちは!

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

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

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

Excel2010の場合は
KB2553154

Excel2007の場合は
KB2596927

となります。

他の原因ならごめんなさいね。m(_ _)m

QExcel VBA --- コマンドボタンが表示上で消える ---

Excel VBAの初心者です。
今回、マニュアル本を見ながら試行錯誤でマクロにチャレンジしています。
用語や説明が上手くできないかもしれませんがよろしくお願いします。

OSはWindows2000、Excelのバージョンは2000です。

sheet1をメニュー画面として、コマンドボタンをいくつか貼り付けて、そのシート名を表示したコマンドボタンをクリックすると別のシートに
飛ぶようにしています。

別のシートに飛んで、そこで作業を終えたら、今度はそのシート上に貼り付けた『メニューに戻る』コマンドボタンをクリックしてsheet1のメニュー画面に戻るようにマクロを組みました。

ところが、作業用のシートからメニューに戻ると前回クリックしたコマンドボタンが表示上消えてしまっています。
そのコマンドボタンがあった位置にカーソルを持って行ってクリックするとちゃんとコマンドボタンの動作をします。

同じような質問がないか検索してみましたら『コマンドボタン上の文字の表示がおかしくなる』という質問があって、下記コードを入れたら解決したそうなので、Sheet1に下記のようなコードを入れてみました。
でもダメでした。

Private Sub Worksheet_Activate()

Application.ScreenUpdating = False
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 1

End Sub

解決方法のご教授をお願い致します。

Excel VBAの初心者です。
今回、マニュアル本を見ながら試行錯誤でマクロにチャレンジしています。
用語や説明が上手くできないかもしれませんがよろしくお願いします。

OSはWindows2000、Excelのバージョンは2000です。

sheet1をメニュー画面として、コマンドボタンをいくつか貼り付けて、そのシート名を表示したコマンドボタンをクリックすると別のシートに
飛ぶようにしています。

別のシートに飛んで、そこで作業を終えたら、今度はそのシート上に貼り付けた『メニューに戻る』コマンドボタンをク...続きを読む

Aベストアンサー

こんにちは。

> Application.ScreenUpdating = False
> ActiveWindow.ScrollRow = 100
> ActiveWindow.ScrollRow = 1

ワークシートには Redraw メソッドが無いので、その代用コード
だと思います。以前、一度同じような状況になって、

  Application.ScreenUpdating = True

では再描写してくれなかったため、同様のコードを書いたことが
あります。ScrollRow を使ったのか覚えてませんが、確かシート
をスクロールさせたような..?

で、回答ですが、再描写が目的なので ScreenUpdating = False
として画面更新を止めてしまっては意味がないですよ。それ以前
のコード実行中に画面更新を止めている可能性があるので、
コードの終了部で、

Application.ScreenUpdating = True
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 1

としてみては?

こんにちは。

> Application.ScreenUpdating = False
> ActiveWindow.ScrollRow = 100
> ActiveWindow.ScrollRow = 1

ワークシートには Redraw メソッドが無いので、その代用コード
だと思います。以前、一度同じような状況になって、

  Application.ScreenUpdating = True

では再描写してくれなかったため、同様のコードを書いたことが
あります。ScrollRow を使ったのか覚えてませんが、確かシート
をスクロールさせたような..?

で、回答ですが、再描写が目的なので ScreenUpdating = F...続きを読む

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コマンドボタンと内容を別ファイルにコピー

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

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

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

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

Aベストアンサー

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

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

のいずれかになります。



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

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

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

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

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

のいずれかになります。



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

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 等に割り当てて下さい。
コピー元を選択し、コントロールキーを押しながら貼り付け先の左上セルを選択します
順番は逆でも...続きを読む

QEXCELのVBAでシートコピーをしたとき元のマクロを削除するには?

VBAのマクロでシートのコピーをしたいのですが、元のシートにはVBAのコードが含まれています。コピーするのはデータだけのコピーが必要で、マクロ自体は必要ないのですが、それを削除するコードはどのように書いたらいいのでしょうか?
どうしてもコピーしたファイルを開くと「マクロが含まれています」という確認メッセージが出てしまうのですが、それもなくしたいのです。
シートにフォームのボタンが配置されている場合も同様に、そのボタン自体をなくした状態でコピーを行いたいのですが・・・。プログラムで行うのは不可能なのでしょうか?

Aベストアンサー

No2です。
サンプルコードを書いてみました。
「オリジナル」という名前のシートを別ブックとしてコピペ保存します。

Sub サンプル()
Dim sc As Integer
sc = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
ThisWorkbook.Sheets("オリジナル").Cells.Copy 'コピー
Workbooks.Add 'ブック追加
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues '値貼り付け
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け
Sheets("Sheet1").Name = "コピー"
Application.CutCopyMode = False
Application.SheetsInNewWorkbook = sc
ActiveWorkbook.Close
ThisWorkbook.Activate
End Sub

No2です。
サンプルコードを書いてみました。
「オリジナル」という名前のシートを別ブックとしてコピペ保存します。

Sub サンプル()
Dim sc As Integer
sc = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
ThisWorkbook.Sheets("オリジナル").Cells.Copy 'コピー
Workbooks.Add 'ブック追加
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlValues '値貼り付け
Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け...続きを読む

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

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

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

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

Aベストアンサー

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

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

Qエクセル:シート名を手入力でなく、セル「A1」の文字を出したい。

いつもお世話になります。
エクセルのシート名についての質問です。
いつもはシート名を変えるとき、シートタブの上を右クリックして「変更」しています。

◆そこで、
(1) セル「A1」に入力されてある文字を自動で出す
(2) もしくはマクロボタンを押すと「A1」に入力されてあるものが「シート名」として変わる

というようにしたいのですが、その方法について教えてください。よろしくお願いいたします。

Aベストアンサー

こんにちは。


(1)の場合は、下記のコードを ThisWorkbook に記述してください。
どのワークシートでも機能します。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value
End Sub


(2)場合は、下記のコードを標準モジュールに記述しボタンにマクロ登録してください。
(すべてのシートにボタンを貼り付けるのは面倒でしょうから、ツールバーにボタンとして追加すると良いと思います。)

Public Sub SheetName()
ActiveSheet.Name = Range("A1").Value
End Sub

Qエクセル:マクロ「Application.CutCopyMode = False」って?

エクセルのマクロを記録していると

「Application.CutCopyMode = False」

というものがよく出てきますが、これは何でしょう?
どういう意味のものかわかりません。
削除しても差し支えないのもでしょうか?

Aベストアンサー

「Application.CutCopyMode = False」の前で
セルのコピー、または切り取りを行っていると思います。
これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。
------------
Range("A1").Select
Selection.Copy ← これを無効にしている
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
------------
上記の場合であれば、「Application.CutCopyMode = False」を削除しても問題ありませんが、
以下の場合、貼り付け処理でエラーになります。
------------
Range("A1").Select
Selection.Copy
Range("A2").Select
Application.CutCopyMode = False
ActiveSheet.Paste ← ココでエラー
------------
ご自分で、セルをコピーしてみると分かると思いますが、コピーした範囲が点線で点滅されます。
「Application.CutCopyMode = False」をすると、
その点滅がなくなります。

「Application.CutCopyMode = False」の前で
セルのコピー、または切り取りを行っていると思います。
これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。
------------
Range("A1").Select
Selection.Copy ← これを無効にしている
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
------------
上記の場合であれば、「Application.CutCopyMode = False」を削除しても問題ありませんが、
以下の場合、貼り付け処理でエラーになります。
------------
...続きを読む

QExcelでチェックボックスを使った列のコピー方法

案件進捗表を作成しています。
進捗に応じて右へ右へとチェックボックスにチェックを入れていく形にしていて、
チェックボックスのとなりのセルに真偽の値を入れるように反映させています。
案件が増えるごとに、1,2,3行と・・とデータを増やしていきたいのですが、
1行目に作成した形式を下にコピーするとチェックボックスが全データ同じ動きをしてしまいます。
となりのセルに「TRUE」などを返すように反映させているチェックボックスはコピーできませんか?
教えてください。よろしくお願いします。

Aベストアンサー

エクセルでは、「フォーム」のチェックボックスと「ActiveXコントロール(コントロールツールボックス)」のチェックボックスの、2種類のチェックボックスが利用できます。
ご相談ではいったいどっちを使って作成したのか、しっかり情報提供してください。

#余談ですがご利用のエクセルのバージョンについても、必ず明記する事を憶えて下さい。


ただまぁ、どちらを使っても「下にコピーしただけで隣に結果が返る」ようにする方法は、残念ですがありません。



というワケで出来る方法:
1.今まで作成したチェックボックスはすべて消去する
2.「フォーム」のチェックボックスをシートに配置する
  その際、必ず「セルの中に納まる」ようにセルの大きさも含めて調整する
3.コントロールの書式設定は「設定しない」でおく
4.右クリックして「マクロの登録」を開始する
5.新規作成を選択、現れた画面で

Sub チェック1_Click()
with activesheet.shapes(application.caller).topleftcell.offset(0, 1)
.value = not .value
end with
End Sub

のように記入作成する

6.ファイルメニューから終了してエクセルに戻る
7.マクロを登録したチェックボックス「が載っているセル」をコピーし、必要なセルに貼り付ける
8.チェックを入れたり外すと、右隣のセルに-1と0が交互に現れる



#おまけ
-1と0のセルにセルの書式設定の表示形式のユーザー定義で
0;"TRUE";"FALSE"
と設定しておくと、TRUEとFALSEの表示になります。「見た目」が重要な時は適宜利用してください。

エクセルでは、「フォーム」のチェックボックスと「ActiveXコントロール(コントロールツールボックス)」のチェックボックスの、2種類のチェックボックスが利用できます。
ご相談ではいったいどっちを使って作成したのか、しっかり情報提供してください。

#余談ですがご利用のエクセルのバージョンについても、必ず明記する事を憶えて下さい。


ただまぁ、どちらを使っても「下にコピーしただけで隣に結果が返る」ようにする方法は、残念ですがありません。



というワケで出来る方法:
1.今まで作成した...続きを読む


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

このカテゴリの人気Q&Aランキング