• 締切済み

エクセル20007で旧バージョンのマクロが一部動作しない

エクセル2000で作成したマクロを、2007で使うと、一部動作しなくて困っています。 具体的には、シートに貼り付けた画像を選択した状態で、Selection.Cutが出来ないんです。 2007でマクロ記録を取ってみても、画像を切り取る動作は、Selection.Cutと記録されるのですが・・・ ちなみに、同じ行を、Selection.Copyにしてみると同様にエラーで、Selection.Deleteにしてみると、選択している画像は削除されます。 2007でクリップボートの仕様が変わったんでしょうか。 この問題は、エクセルに写真を貼り付けると、ファイルサイズが大きくなるので、貼り付けた画像を、一度切り取って、jpeg形式で貼り付けし直すという流れのマクロの中の、画像を切り取る部分で発生しいます。 何かいい方法はないでしょうか。

  • subb
  • お礼率0% (0/2)

みんなの回答

  • goold-man
  • ベストアンサー率37% (8365/22183)
回答No.2

追加 ブックのパスワード保護が有効になっていると、マクロが実行できないとのこと、パスワード保護を解いて開き直し、マクロを実行します。 参考URLをご覧ください。

参考URL:
http://d.hatena.ne.jp/konokono7tunooiwaini/20071128
subb
質問者

補足

早速の回答ありがとうございます。 このフィルには、パスワード保護はしておりません。 Selection.Cut以外は、問題なく動作しています。

  • goold-man
  • ベストアンサー率37% (8365/22183)
回答No.1

メニューバー操作のコードが機能しない、FileSearchオブジェクトやSpreadsheetコントロールなど廃止された機能もありますが、マクロを有効にしてブックを開くと「互換モード」が表示され、おおむね互換性があります。 詳細は参考URLをご覧ください。

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/kankyo/sub02_04_04.html
subb
質問者

補足

Selection.Cutは、「編集-切り取り」のメニューなので、廃止された機能ではありません。 「セル」ではなく、「画像」の切り取り(コピー)という意味で、2007で何か変更があったのでしょうか。

関連するQ&A

  • Excel 2007 マクロ 表の貼り付け

    Excel 2007 マクロ 表の貼り付け Excel 2007 マクロ 表の貼り付けについて教えてください。 <Sheet1>の表にあるA2からD4を <Sheet2>に値貼り付けをします。 表は画像を添付します。 マクロの記録では下記内容になります。 Sub Macro1() ' ' Macro1 Macro ' ' Range("A2:D4").Select Selection.Copy Sheets("Sheet2").Select Range("A2:D4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub <Sheet1>のA列の行の増減にかかわらず、<Sheet2>に貼り付けることができるように するにはどのようにマクロを修正すればよろしいでしょうか。

  • エクセル記録マクロの作成の方法

    エクセル記録マクロの作成の方法 あるネット上でマクロ作成方法では、 ブックのsheet(1)をオートフィルターを利用し、データを抽出した物だけを、シートを追加し張り付けるやり方を、コード上では Selection.CurrentRegion.Select(1) Selection.Copy Sheets.Add Selection.PasteSpecial Paste:=xlValues(2) と記入がありました。 私が自動記録をすると、sheet(1)をコピー時は(1)可視セルのコピーを選択し、貼り付けをするときに(2)値のみにしておこなうと、上記のようなコードで自動記録はおこなわれません。 上記のコードを自動記録操作で作成させるのには、どのような操作記録をおこなったか教えてください。 ((1)についてはアクティブセルのコピーのようだとは理解しました。なぜか理解はできません。)

  • エクセルのマクロについて

    エクセルのマクロについて 領域の範囲選択→貼り付けの繰り返し処理をループで考えています。 領域の範囲選択し、貼り付け処理をマクロの自動記録で、出してみました。 Sub Macro1() Range("E6:G12").Select Selection.Copy Range("E17").Select ActiveSheet.Paste Application.CommandBars("Stop Recording").Visible = False End Sub この時に、「Range("E17").Select」の命令は「Cells」関数に置き換えられるのですが、「Range("E6:G12").Select」のように複数のセルの領域選択をする際に、「Cells」関数ではできないのでしょうか。 「Cells」関数を使えば、行列を数値にし、変数を使えば、LoopかFor命令で繰り返し処理ができるのですが、わかる方、解答ください。よろしくお願いします。

  • マクロのことで困っています。

    ペイントから切り取った画像を、エクセルに貼り付けて、貼り付けた画像のサイズを変更します。何度も画像の一部を切り取って画像のサイズを変更するので、その手間を省けたらと思います。(要するに 貼り付け→サイズ変更 をしたいのです) 一度マクロ記録で試してみたのですが、実行すると『貼り付けた画像』ではなく『マクロ記録時に選択した画像』が縮小されてしまうのです。かなりわかりづらい説明だとは思いますが、よろしくお願いします。

  • エクセル(マクロ)での「jpeg画像の選択」について

    あるシート上に、「複数のjpeg画像」があり、 マクロを使って、それらを「全て選択」し、 一括で横方向へ平行移動したい、と思っています。 そこでなのですが、 「jpeg画像のみ」を選択するためには、 マクロでは、どのような記述をすればよいのでしょうか…。 先ほど以下のように記述した所、 シート上にある、マクロを登録している「ボタン」まで選択されてしまい、 「jpeg画像のみ」の選択が、できませんでした…。 ActiveSheet.DrawingObjects.Select Selection.ShapeRange.IncrementLeft 240 何か良い方法がありましたら、 アドバイスをお願い致します。m(_ _)m

  • エクセルのシートに貼りつけたbmpをjpegに

    手持ちの本(4冊)やインターネットで探せなかったので、教えてください。 エクセルのシートに15枚の画像(bitmap)が貼られており このままではファイルが重いので、同サイズのjpegに変換したいのですが・・・ 手でやると 画像選択→切り取り→貼り付けセルを選択→型式を選択して貼り付け→図(jpeg) 以下マクロの記録 ActiveSheet.Shapes.Range(Array("図 11")).Select Selection.Cut Range("H60").Select ActiveSheet.PasteSpecial Format:="図 (JPEG)", Link:=False, DisplayAsIcon:= _ False End Sub となります。 これをVBAで数10ファイル連続で実行したいのですが、1つ問題があります。 画像はカウント後に配列で取り込み順次処理していきますが、 同じ場所に同じ大きさで貼りたいのですが、元画像を貼り付けているセルの番地の 取得をどうしたらよいか悩んでいます  コレ → Range("H60").Select 画像が張り付いているセルは複数で左上のセルを選択して貼り付けしたいのですが・・・ 貼り付けた画像(bitmap)は名前が自動的に振られているのでセルを指定して貼り付けると 元の位置に貼られない可能性があるので・・・ 貼り間違いなどで、同じ位置でも図の名前(図11等)が違ってしまっている場合 説明が下手で申し訳ありませんが、ご存知の方よろしくお願いいたします。

  • excel マクロ

    Sub Macro1() ' ' Macro1 Macro ' ' ActiveCell.Offset(-1, 0).Range("A1:G1").Select Selection.Copy End Sub マクロの記録だけでこのコードを作ることは可能でしょうか?

  • エクセルのマクロの手直し

    お世話になります。 エクセルのマクロに教えてください。 (1)シートの保護を解除 (2)E42~H42までを選択し[コピー] (3)E18をクリックして[形式名を選択して貼り付け](その中の値のみ) (4)E42~H42までを選択し[数式と値のクリア] (5)シートの保護 → OK ここで (3)のE18というセルの所を E列で、行番号は I42 のセルに7を足した数字 というようにしたい。(I42の値が15だったらE22という具合)ちなみに I42 のセルは条件により変化し0以上35以下の整数が入る。 以下は(1)から(5)の作業をマクロの新規作成で「マクロ」という名前で記録したものです。 どの部分を修正すればいいのか教えてください。 Sub マクロ() ' ' マクロ Macro ' マクロ記録日 : 2002/5/27 ユーザー名 : ' ' ActiveSheet.Unprotect Range("E42:H42").Select Selection.Copy ActiveWindow.ScrollRow = 10 Range("E18").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=6 Application.CutCopyMode = False Range("E42:H42").Select Selection.ClearContents Range("I37").Select ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub

  • エクセルマクロでの行削除の方法について

    エクセルマクロを使用しての行削除の方法についてお伺いします。 現在業務でエクセルに画像内の文字データを入力しています。 入力データは列ごとに半角全角のきまりがあり、 データが入力された行列以外はすべて削除しそれをCSVで保存という流れになっているのですが、 今のところ関数を入れて半角全角チェックをし、それが済んだあとに、 実際のデータ部分以外の箇所をすべて削除し保存しています。 調べたら半角全角はvbNarrowとvbWideという関数があると知り、 列については、特定位置から始まるのでマクロの記録で対応できています(列項目は予め数が決まっていますので)。 ただ、行については画像にどれだけデータがあるかで開始位置が変わってきます。 ***以下は試したマクロ記録です。*** Rows("9:9").Select→何も知らずに「"9:9"」の所で"開始位置の変数:開始位置の変数"としエラーで迷ってます。 Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp Columns("F:F").Select Range(Selection, Selection.End(xlToRight)).Select Selection.Delete Shift:=xlToLeft 不特定の行から最終行までを選択削除する方法をご存じの方がいましたらご教授お願いいたします。 上記のマクロ使用環境はExcel2003です。

  • エクセルマクロ Vlookupに似たマクロはありますか?

    度々すみません。 わからない事がいくつか出てきてしまって。どなたかご教示いただけると嬉しいです。 今は手作業で以下のような作業をしております。 データ元のシート(以下(1))とそれ加工して作るシート(以下(2))があります。 (1)のデータを2度sortするのですが、一度目のsortでtotalが入っている行は全てdelete。 残ったデータでもう一度sortし、種類別に並び変えます。 その後、コラムAがUSDである物はシート(2)のUSDページに貼り付け、コラムAがEURであればシート(2)のEURページに貼り付け・・・としていきたいのですが、マクロの記録を使おうにも、毎回コラムAは目視で確認しコピー・貼り付けをしていますのでマクロの記録は使えないですし、エクセル関数ではVLOOKUPがありますが、それをマクロに書き込む方法もどこにも載っておらず、どうしていいか息詰まった状態です。 sortするのはマクロの記録を使って作成できましたので、 ・コラムAがtotalになっている行より下はdelete ・コラムAがUSDならシート(2)のUSDシートへ貼り付け・・・ のマクロを作成したいです。 どうか宜しくお願い致します。

専門家に質問してみよう