「教えて!ピックアップ」リリース!

Excelでロックしていないセルに、画像を貼り付けることはできますか?
環境はWindows,Excel2003です。

編集させたいセル(ロックしていないセル)を下記手順で設定しております。

●編集させたいセル
1.【セルの書式設定】-【保護】タブで、【ロック】のチェックをはずす
2.【ツール】-【保護】-【シートの保護】を設定する

この時、指定のセルへのテキスト入力は出来ております。

シート保護がない場合は、下記の手順で画像を貼り付けていました。
・【挿入】-【図】-【ファイルから】で画像ファイル選択
ただし、シート保護の状態では、上記メニューはグレーとなり使えませんでした。
ドラッグ&ドロップを試してみましたが、貼り付けることは出来ませんでした。

シート保護のまま、ロックしていないセルに画像を貼り付けることはできますでしょうか?
識者の方、ご教示よろしくお願い致します。

A 回答 (5件)

#2です。



>そうですか、無理なんですね。

そうですね。ただ、VBAで処理した場合、保護が解除されるのは画像挿入のほんの一瞬でしかありません。ユーザーには気付かれませんよ。

ちなみに、VBAだとこんな感じになります。決まったシートだけとか、挿入後のサイズ変更なんかもVBAでできますよ。以下のコードは挿入するだけですが。

Sub 画像挿入()

  With ActiveSheet
    'シート保護解除
    .Unprotect
    '画像挿入ダイアログ表示-->画像を挿入
    Application.Dialogs(xlDialogInsertPicture).Show
    '画像が挿入されたら、保護のロック対象外に設定
    If TypeName(Selection) = "Picture" Then
      Selection.Locked = False
    End If
    'シート保護
    .Protect DrawingObjects:=False, Contents:=True
  End With

End Sub
    • good
    • 1
この回答へのお礼

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

ご丁寧にコードの提示いただきまして、ありがとうございます。
上記のVBAを挿入した場合ですが、実際の操作はどうなりますでしょうか?

ユーザーが画像を挿入する操作は、セルを指定して、ツールバーから
【挿入】-【図】-【ファイルから】
という流れになりますか?

お手数ですが、ご返答いただけると幸いです。

お礼日時:2005/03/18 12:01

#2 #3です。



>上記のVBAを挿入した場合ですが、実際の操作はどうなりますでしょうか?


【手順】
1. EXCEL画面で[Alt]+[F11]キーを同時に押す。
  -->Visual Basic Editor起動(以下VBE)
2. VBE画面のメニュー[挿入]-[標準モジュール]クリック
3. 2.で開いたウインドウに#2のコードをコピー&ペースト
4. VBEを閉じる
5. [ツール]-[マクロ]-[マクロ]から実行

です。

一回マクロを貼り付けてしまえば、あとは5.でマクロを呼び出すだけです。

[表示]-[ツールバー]-[フォーム]でボタンをシート上に書いて、それにマクロを割り当てておくとマクロの呼び出しが楽になりますよ。
    • good
    • 0
この回答へのお礼

マクロを実行してみましたが、シート保護の解除を行う時、パスワード入力を求められました。
そのままパスワードを入力すると、画像の挿入が出来、シートが保護されました。

パスワードは入力させたくないので、このマクロでは所望の作業は実現できませんでした。
ご教示いただいたのに申し訳ございません。

ただ、本件を機にマクロが少し理解できました。
ありがとうございました。

お礼日時:2005/03/25 16:29

シートを保護する際に、"オブジェクト"のチェックだけ外しておかれたらいかがで


しょうか。
作業用の別シート(非保護)に画像を貼り付けてからコピーし、目的のシートに貼り
付けるのですが。
    • good
    • 1
この回答へのお礼

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

先ほど試してみましたが、巧くいきませんでした。
ご指示の通り、別シートに貼り付けた画像をコピーして、
目的のシートに貼り付けようとしたところ、エラーになりました。

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

お礼日時:2005/03/18 12:04

試しましたが、無理そうですね。



代替案ですが、

1. シート保護を解除
2. 画像挿入ダイアログを開き、画像挿入
3. シートを再び保護

という流れをVBAで処理させたらどうでしょうか?
    • good
    • 0
この回答へのお礼

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


そうですか、無理なんですね。
出来るか出来ないかが分かっただけで充分です。

シート保護は解除させたくありません。
VBAは明るくないので、出来ない方向で進めます。

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

お礼日時:2005/03/18 10:54

シートの保護時にオブジェクトのチェックをはずせば


オブジェクトの貼り付けは可能です。
但し、オブジェクトの削除もできるので、それを制限する場合は
保護を一時的に解除するなどの方法をとる必要があります。
    • good
    • 0
この回答へのお礼

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

ご指摘の通り、シート保護時にオブジェクトのチェックをはずしましたが、画像の貼り付けは出来ませんでした。

オブジェクトの削除ができることは問題ありません。
ただ、シート保護は解除させたくないのです。

早速のご回答感謝いたします。

お礼日時:2005/03/18 10:48

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

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


人気Q&Aランキング