みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel2000 「データ範囲の形式および数式を拡張する」で解除できない問題。

はじめまして。少々古いバージョンですが、Office2000 の Excel2000(sp-3にアップデート済) の機能について質問を致します。色々なサイトでも良く目にする質問のようですが、解決に至らないので改めて質問させて頂きます。重複質問であればお許しください。

例ですが、A1セルを黄色に塗りつぶした後、2行目を選択して、行の挿入をすると、A2セルも自動で黄色に塗りつぶされてしまいます。行の挿入でなく、セルの挿入でも然りです。

良く見かける回答としては、タイトルにも書きましたが「データ範囲の形式および数式を拡張する」チェックボックスのチェックを外すとありますが、確かに、数式などは拡張されませんので、このオプションは正常に機能していると思われます。
塗りつぶしのみ引き継がれてしまう状態です。

Excel を再インストールして、色々なオプション設定がデフォルトの状態で試しても見ましたが、変わりはありませんでした。勿論、SR-1 でも同様です。

単に仕様であれば仕方がありませんが、多々煩いを感じるので、解決方法があれば、ご教示ください。よろしくお願いいたします。

投稿日時 - 2009-10-02 05:10:39

QNo.5335205

暇なときに回答ください

質問者が選んだベストアンサー

こんにちは。#2です。

私も、あらためてExcel2000のオプション設定等を見てみましたが、残念ながら
Excel2000では、設定等でご希望の機能を簡単に実現することはできないように
思われます。

しかしながら、#2に上げた代替案の他にも方法が無いわけではありません。
多少、強引なやり方ではありますが以下のようなアドイン機能を利用した方法も考
えられます。

1)『上段セルのカラー設定を引き継がないセル挿入処理』をマクロ化して、アドイン
  用のExcelブック(拡張子: .xla)を作成する。

2)他のExcelブックから、1)のアドインを登録して利用する。
  ・アドイン登録時の自動処理として、専用のツールバーを作成し、そこにマクロ
   起動用のコマンドボタンを登録するようにしておく。
  ・一度アドイン登録しておけば、それ以後、他のExcelファイルを開いた際にも、
   アドインが利用できます。

上記のようにしておけば、コマンドボタンのワンクリックのみで、希望する挿入操作
(上段セルのカラーパターンを引き継がないセル挿入)が可能になると思います。

こちらの方法の方が、#2の方法よりも手順が少なく、通常のセル挿入操作に、より
近い形になるかと思います。

参考までに、上記のような機能をもったアドイン用のサンプルマクロ及びアドインの
登録手順を以降より記述してあります。
※宜しければ試してみて下さい。

■アドイン用Excelブックの作成&アドイン登録の手順

1)Excelブックを新規作成します。

2)メニュー「ツール」→「マクロ」→「Visual Basic Editor」をクリックします。

  これで「Visual Basic Editor」(以下"VBE"とします)が起動されます。
  ※以下7)まで、VBE側での操作になります。

3)メニュー「表示」→「プロジェクト エクスプローラ」をクリックします。

  これで画面左側にVBAプロジェクトの各オブジェクトのツリー構造を表示する
  画面が表示されます。
     ↓
  このツリー表示内で開いているExcelブック名に対応する部分をクリックして
  ツリー表示を展開します。
     ↓
  ツリー内の「ThisWorkbook」を選択しダブルクリックします。
     ↓
  これで「ThisWorkbook」オブジェクトのコード画面が表示されます。
     ↓
  このコード画面に下記記載の「■サンプルマクロ」の【1】のコードを貼り付けます。

4)メニュー「挿入」→「標準モジュール」をクリックします。

  これで「標準モジュール」オブジェクトのコード画面が表示されます。
     ↓
  このコード画面に下記記載の「■サンプルマクロ」の【2】のコードを貼り付けます。

5)メニュー「デバッグ」→「VBAProject のコンパイル」をクリックします。

  これで貼り付けたマクロソースがコンパイルされます。
  ※ここで構文エラー等があった場合は、該当箇所のコード画面にジャンプし、
   メッセージが表示されます。
  ※エラーがない場合は、何も表示されません。

  ※もしも、エラーが発生した場合はソースを修正して下さい。

6)必要であれば、以下の操作でVBAプロジェクトを保護します。

  ※プロジェクトの保護は、他のユーザーがVBAコードなどを参照&変更できない
   ようにします。

  メニュー「ツール」→「VBAProjectのプロパティ」をクリックします。
     ↓
  表示されたダイアログで、
    「全般」タブ → プロジェクト名 の欄に適当な名前を入力。
              ※これは既定値(デフォルト)のままでも構いません。
    「保護」タブ → プロジェクトのロック
                「プロジェクトを表示用にロックする」 をチェック
              プロジェクトのプロパティ表示のためのパスワード
                「パスワード」、「パスワードの確認入力」 に
                パスワードを入力。
  などの設定を行って下さい。

  注)この設定を行ってExcelファイルを保存&終了した後、再びこのExcelファイル
    を開いた際にVBE画面でコード画面等を見ようとすると「パスワード」の要求
    画面が開きます。
    ※ですのでパスワードは忘れないで下さい。

7)メニュー「ファイル」→「終了してMicrosoft Excel へ戻る」をクリックしてVBE
  画面を終了し、Excelシートの画面に戻ります。

  ※以後は、再びExcelシート側の操作になります。

8)メニュー「ファイル」→「プロパティ」をクリックします。

  表示されたダイアログの、
    「ファイルの概要」タブ → 「タイトル」欄
  に適当な名前(=アドイン名)(例えば "セル挿入アドイン" など)を入力
  します。
  ※このアドイン名は、下記12)のアドイン登録時に参照します。

9)メニュー「ファイル」→「名前を付けて保存」をクリックします。

  表示されたダイアログで、
    「ファイル名」    に適当なファイル名を入力
    「ファイルの種類」 より"Microsoft Excel アドイン (*.xla)" を選択
    「保存先」      のフォルダ位置はそのまま変更しない
  としてファイルを保存します。

  ◎アドイン用のExcelファイルは既定で、
     Microsoft Officeのインストール先フォルダ
     (C:\Program Files\Microsoft Office\Office など)以下 の
     "Library"フォルダかそのサブフォルダ
        または
     Windowsのシステムフォルダ(C:\Windows など)以下のユーザー毎
     のフォルダ下の "Application Data\Microsoft\AddIns"
   に保存されます。

10)ファイル保存後、一旦 Excel を終了します。

11)アドインを利用する側(編集対象)の他のExcelブックを開きます。

12)メニュー「ツール」→「アドイン」をクリックします。

  表示されたダイアログでアドイン名の一覧リストが表示されます。
     ↓
  リストの中から、上記8)で登録したアドイン名を探して、左側のチェックマーク
  のチェックをONにして、「OK」ボタンを押して下さい。
     ↓
  メッセージ画面
    ”「セル挿入」アドインを登録します。”
  が表示されますので、「OK」ボタンを押して下さい。
     ↓
  これで、コマンドバー「InsCell専用」が表示されます。
  ※必要ならこのバーのタイトル部分をマウスでドラッグし、ツールバーのエリア
   に移動させて他のツールバーにドッキングさせて下さい。
     ↓
  これでアドインの登録が完了します。

 <アドイン登録を解除する場合>
  登録したアドインを解除する場合は、再び、
  メニュー「ツール」→「アドイン」をクリックし、アドイン登録画面を表示させて、
  アドイン名一覧リストの該当のアドイン名のチェックマークをOFFにして、「OK」
  ボタンを押して下さい。
     ↓
  メッセージ画面
      ”「セル挿入」アドインが解除されました。”
  が表示されますので、「OK」ボタンを押して下さい。
     ↓
  これでアドインの登録が解除されます。

13)登録したアドインを実行する場合の手順

  編集対象のExcelシート上で、セルを挿入したい位置のセルまたは行全体をマウス
  で選択します。
     ↓
  上記12)で追加されたコマンドバー上のボタン「セル挿入(カラーOFF)」をクリック
  します。
     ↓
  これでセルが挿入されると思います。
  ※上段セルのカラーパターンは引き継がれずに挿入されると思います。

■サンプルマクロ

注)インデントのために全角スペースを入れています。
  ※Excelのモジュールに貼り付ける際は、半角スペースorタブに置換して下さい。

【1】「ThisWorkbook」オブジェクトに記述するマクロ

/////↓ここから/////
Option Explicit
'== アドイン登録 ==
Private Sub Workbook_AddinInstall()

  Dim menubar As CommandBar

  'アドイン登録のメッセージ表示
  MsgBox "「セル挿入」アドインを登録します。", vbOKOnly Or vbInformation

  'マクロ起動用のコマンドバーを作成
  Set menubar = Application.CommandBars.Add(Name:="InsCell専用")
  With menubar.Controls.Add(Type:=msoControlButton)
    .FaceId = 59
    .Style = msoButtonIconAndCaption
    .Caption = "セル挿入(カラーOFF)"
    .TooltipText = "セル挿入(カラーOFF)"
    .OnAction = "InsCell"
  End With
  menubar.Visible = True

End Sub
'== アドイン解除 ==
Private Sub Workbook_AddinUninstall()

  Dim menubar As CommandBar

  'マクロ起動用のコマンドバーを削除
  Set menubar = Application.CommandBars("InsCell専用")
  menubar.Delete
  Set menubar = Nothing

  'アドイン解除のメッセージ表示
  MsgBox "「セル挿入」アドインが解除されました。", vbOKOnly Or vbInformation

End Sub
/////↑ここまで/////


【2】「標準モジュール」オブジェクトに記述するマクロ

/////↓ここから/////
Option Explicit
'== セル挿入処理 ==
Public Sub InsCell()

  Dim strMsg$

  '選択されているオブジェクトがセル(Range)かチェック
  If TypeName(Selection) <> "Range" Then
    strMsg$ = "セルが選択されていません。"
    MsgBox strMsg$, vbOKOnly Or vbExclamation
    Exit Sub
  End If

  '選択セル位置にセルを挿入し、カラーパターンをクリアする
  On Error GoTo L_ERR1
  Selection.Insert Shift:=xlDown
  Selection.Interior.ColorIndex = xlNone
  On Error GoTo 0

  Exit Sub

L_ERR1:
  'エラー処理
  strMsg$ = "セルが挿入できません。" & vbLf
  strMsg$ = strMsg$ & "※挿入による行数オーバー等が発生します。"
  MsgBox strMsg$, vbOKOnly Or vbExclamation

End Sub
/////↑ここまで/////

■参考サイト
 アドインの作成方法及び登録手順などについては、下記サイトが参考になると
 思います。
 ※今回のマクロ&アドイン登録手順も、下記サイトを参考にさせて頂きました。

Excelアドインの作り方(ツールバーの作成と削除)
http://www.bird-soft.net/mt/2008/07/excel.html

エクセル アドイン 作り方 第8回
http://blog.goo.ne.jp/leapdys/e/bf48ff9d45364a3de9d66e23ee4b681a

AddinBox(FaceId一覧)
http://www.h3.dion.ne.jp/~sakatsu/FaceIdBrowse.htm
※コマンドバー上のボタンに使用可能なアイコンの一覧です。

■最後に
 今回のアドインは、コマンドバーに機能ボタンを追加しましたが、できれば既存
 の挿入操作と同じように、右クリック時の「コンテキストメニュー」に機能を追加
 できれば良かったのですが、現在そこまでのスキルは持っていないので今回
 は諦めました。私も勉強してみます。

投稿日時 - 2009-10-03 14:22:20

補足

FarEyes 様、お世話になります。
やはり 2000 の仕様のようですか… 色々と試して頂きましたようで、ありがとうございました。
このような細かい部分の仕様には、ちょっと疑問も持ちますが、お陰さまで、スッキリとしました。

マクロをアドインで登録して置くと言うアイディアは、思いつきませんでした。
ご丁寧に、コードまで記して頂き、ありがとうございます。
今後、必要に応じて導入してみたいと思います。感謝!

投稿日時 - 2009-10-03 20:06:40

お礼

ありがとうございました。
またの機会には、どうぞ宜しくお願い致します。

投稿日時 - 2009-10-05 23:12:57

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

こんにちは。

見当違いの内容でしたらすみません。

色が付いていない空白のセルを挿入したいのであれば、以下の操作を試して
みては如何でしょう。
※当方もExcel2000で試してみました。

1)シート上の色が付いていない空白セル(色設定をしていない&何も入力
  していないセル)を選択してコピー操作を行います。
  →添付画像の(1)の状態

2)セルを挿入したい位置のセルを選択してマウスを右クリックし、表示された
  コンテキストメニューより「コピーしたセルの挿入」をクリックします。
  →添付画像の(2)の状態

3)「挿入貼り付け」のダイアログが表示されますので、ここで「下方向にシフト」
  を選択して[OK]ボタンを押します。
  →添付画像の(3)の状態

4)これで選択セル以降のセルがずらされて、空白セルが挿入されると思います。
  →添付画像の(4)の状態

上記1)でコピー元のセルを複数選択(矩形範囲)すれば、挿入先にもその範囲
分のセルが挿入されます。

セル単位ではなく、行全体を挿入する場合は、上記1)の操作の代わりに、
何処かの空白になっている行全体を選択してコピーし、上記2)以降の操作を
行えば良いと思います。
※行挿入の際は、上記3)のダイアログは表示されません。

以上です。参考になれば幸いです。

投稿日時 - 2009-10-02 09:34:06

補足

FarEyes 様、ありがとうございます。
確かにこの方法は有用ですね。只、例えば、行挿入の場合を例に取ると、行番号が書かれている「左端の灰色の部分」をクリックして「挿入」から行挿入をする事が多いものですから…

折角、1つの手順で行挿入が出来ているのに、その直前のセルのカラープロパティーを引き継いでしまうので、一々「塗りつぶしなし」の操作をしています。

仕様の関係でしたら諦めも付くのですが…
ご回答を頂き、感謝いたします。

投稿日時 - 2009-10-02 17:28:11

お礼

ありがとうごさいました。
またの機会には、どうぞ宜しくお願い致します。

投稿日時 - 2009-10-05 23:14:32

ANo.1

Excel2002では
挿入したときには
挿入オプションが選択できるのできるのですが
2000ではどうですか

投稿日時 - 2009-10-02 05:38:10

補足

chiizu2 様
早速のご返事を頂き、ありがとうございます。
2000 では、頂いた画像のような挿入オプションの選択メニューはありません。
アクティブセルの上で、右クリックをして、表示されたメニューから「挿入」を選択するだけです。

投稿日時 - 2009-10-02 06:33:42

お礼

すみません、前後してしまいましたが、質問に画像を添付いたしました。
ご覧ください。

投稿日時 - 2009-10-02 06:55:33

あなたにオススメの質問