エクセル2000で動いたマクロが2003で実行時エラー!

このQ&Aのポイント
  • エクセル2000で動作していたマクロがエクセル2003で実行時エラーが発生します。具体的には「実行時エラー448 名前付き引数が見つかりません。」というエラーが表示されます。
  • エクセル2000で作成したマクロをエクセル2003で実行すると、「実行時エラー448 名前付き引数が見つかりません。」というエラーが発生します。
  • エクセル2000で問題なく動作していたマクロをエクセル2003で実行すると、「実行時エラー448 名前付き引数が見つかりません。」というエラーメッセージが表示されます。
回答を見る
  • ベストアンサー

エクセル2000で動いたマクロが2003で実行時エラー!

会社のWindows2000、エクセル2000では問題なく動いたマクロですが Sub test01() ActiveSheet.Protect , Password:="XX", UserInterfaceonly:=True End Sub これを自宅のWindowsXP エクセル2003でうごかすと実行時エラーがでます。 「実行時エラー448 名前付き引数が見つかりません。」となってしまうのです。 Sub test02() ActiveSheet.Protect , UserInterfaceonly:=True End Sub とすれば動くのですが、そうするとシートに保護がかかっているのでパスワードを聞いてくるようになってしまいます。 エクセル2003ではどのように書くべきなのでしょうか?できれば2000も2003も共通の記述でOKになるようにしたいのですが。 ご教示をお願いします。

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

  • ベストアンサー
  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

Protect の後がカンマ不要ではないですか? ActiveSheet.Protect Password:="XX",UserInterfaceonly:=True

merlionXX
質問者

お礼

なんと! ただの打ち間違いだったわけですね。 ありがとうございました。

関連するQ&A

  • エクセル テキスト追加マクロで”実行時エラー”発生

    エクセル テキスト追加マクロで”実行時エラー”発生 保護されたスケジュール表の上へ、マクロでテキストボックスを追加しようとしてます。 別マクロで行挿入マクロがありますが、これを実行した後にテキスト追加マクロを実行すると 実行時エラー'2147024809(80070057)':選択した図形はロックされています。 が表示されます。 これを解決する方法をご教授ください。 追加されたテキストボックスは、位置変更とテキスト編集ができるようにしたいと思います。 ◇行挿入◇ Sub 行挿入() With ActiveSheet .Protect Password:="Pass", UserInterfaceonly:=True '処理 End With End Sub ◇テキストボックス追加◇ Sub テキスト追加() ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ Selection.Left + 3, Selection.Top + Selection.Height - 11, _ 50#, 12#).Select End Sub

  • エクセルVBAでUserInterfaceOnly:=Trueが効かない?!

    以下のコード(要点だけに簡略化していますが)を実行すると、実行時エラー1004「アプリケーション定義またはオブジェクト定義のエラーです。」となります。 もちろんシートをProtectしなければエラーになりませんが、UserInterfaceOnly:=True にして、マクロからの変更は可能にしているはずなのに・・・・。 Valueプロパティは設定できるのにIDプロパティが設定できないのはどうしてでしょうか? また、一旦シートをUnprotectしてから再度Protectすること以外の対処法がありますか? Sub test01() With ActiveSheet .Protect Password:="merlion", UserInterfaceOnly:=True .Range("A1").Value = 999 .Range("A1").ID = .Range("A1").Value '←ここでエラーになります。 End With End Sub Excel2000、2003とも同じ結果でした。 よろしくお願いいたします。

  • エクセルVBAでブック保護のUserInterfaceOnly:=Trueはダメ?

    エクセル2000です。シート保護ならUserInterfaceOnly:=TrueでVBAでの変更は可能ですが、Book保護にもそういう機能はないのでしょうか?試しに、 Sub TEST1() ActiveWorkbook.Protect Password:="merlion" , UserInterfaceOnly:=True End Sub とやってみましたが、エラーになってしまいました。(泣)

  • エクセル:常に保護をかけるがマクロは有効

    シートに、マクロ実行時以外保護をかけておきたいです。 (マクロで、ロックをかけたセルを操作したいので) 「マクロを記録する」で保護をかける操作を記録してもらったところ、 「許可する操作」は以下の記述で実行されるようです。 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _ AllowInsertingColumns:=True, AllowInsertingRows:=True, _ AllowDeletingColumns:=True, AllowDeletingRows:=True ここに「マクロからの変更は有効」の UserInterfaceOnly:=True を加えた以下のコードは、 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _ AllowInsertingColumns:=True, AllowInsertingRows:=True, _ AllowDeletingColumns:=True, AllowDeletingRows:=True, UserInterfaceOnly:=True どのSubに記述すればよいでしょうか。 ワークシートに直接書込むんですよね? Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub に書いてみたら一時期正常に動いていたと思うのですが、どうやら勘違いだったみたいです。 ActiveもChangeも違うようなのですが(なぜかどちらも一時は動いたような…)。

  • マクロ 実行エラー1004

    エクセル2000を使用しています。 以下のマクロを作り、19行目の”AAA”を探し、29行目で1つ前の列までロックしようとしています。 新規のエクセルで使用すると、動作しますが、肝心の組み込みたいエクセルだと動作しません。 19行目には”AAA”以外の文字列があります。 (19行目には、”AAA”は必ず1つしかありません) また、”AAA”は関数で19行目に表示されています。 実行すると最後の行のRange(Range("A29"), h.Offset(1, -1)).Locked = Trueで黄色ハイライトされ 実行エラー1004で「RangeクラスのLockedプロパティを設定できません。」を表示されます。 何か対処するよい方法があれば、教えてください。 Private Sub Worksheet_Change(ByVal Target As Range) Dim h As Range Cells.Locked = False ActiveSheet.Protect userinterfaceonly:=True Set h = Range("19:1").Find(what:="AAA", LookIn:=xlValues, lookat:=xlWhole) If h Is Nothing Then Exit Sub If h.Column = 1 Then Exit Sub Range(Range("A29"), h.Offset(1, -1)).Locked = True End Sub

  • エクセル シートを保護してる時のセル結合

    エクセル2010を使用しています。 仕事の成果を一定の様式に記入してもらいます。書式、関数などを変更してもらいたくないのでシートに保護をかけました。 記入してもらうところだけセルのロックをはずし入力OKに設定しました。 しかし、シートの保護をかけるとロックをはずしててもセルの結合はできないんですね。なので、過去の質問からシートの保護がかかっていてもマクロですべての操作をしようできるというマクロ↓を参考にしてみました。 Sub seru() ActiveSheet.Protect UserInterFaceOnly:=True End Sub これと、セルを結合するマクロ↓を考えたのですが、どのように2つをくっつけたらいいのかがわかりません。 If TypeName(Selection)="Range"and Selection.Cells.Count>1 Then Selection.Merge ActiveSheet.Protect,AllowFormattingCells:=True End If 何かぬけているのかマクロを実行しても全く働いてくれません。 どうかよろしくです。

  • エクセルの画像貼り付けマクロについて

    Sub 画像挿入() ActiveSheet.Unprotect Password:="pass" Application.Dialogs(xlDialogInsertPicture).Show If Dialog1.Show Then With ActiveSheet.Pictures(1) .Top = Range("D31").Top .Left = Range("D31").Top Selection.ShapeRange.IncrementLeft -126# Selection.ShapeRange.IncrementTop 21.75 End With ActiveSheet.Protect Password:="pass", DrawingObjects:=True, _ contents:=True, UserInterfaceOnly:=True End Sub 現在、ダイアログ表示で画像を貼り付けられるように設定しています。 2点質問があり、お答えしていただければと思います。 まず、ダイアログ表示時にキャンセルを押した場合エラーメッセージが 出てきますので、キャンセルを押した場合にダイアログが閉じるように 設定する。 2点目が、間違えて貼り付けてしまった画像を削除する事。 保護をマクロの後にしますので、貼り付けてしまったらその画像を 選択して削除が出来ません。 削除ボタンで貼り付けた画像を削除したいのですがいい方法は ございますでしょうか? 緊急ですのでどなたかお答え頂けますでしょうか、よろしくお願い致します。

  • 実行時エラー 1004について 【超初心者です】

    マクロ超初心者です。 WindowsXP Excel 2003です。 データ入力用にマクロを作成してみましたが、 「実行時エラー 1004 アプリケーション定義・・・・」というメッセージが出てきます。 シート1「入力」を入力用画面として、 シート2「データ」にシート1で入力した内容が反映されるものです。 シート1「入力」の入力用画面はセルの結合が多く、 入力するセル以外はシートの保護をかけています。 下記のようなマクロです。 Sub 登録() ActiveSheet.Unprotect Password:="×××" 最終行 = Sheets("データ").Range("A" & Rows.Count).End(xlUp).Row + 1 Sheets("データ").Range("A" & 最終行).Value = 最終行 Sheets("データ").Range("B" & 最終行).Value = Range("C2:D2").Value Sheets("データ").Range("C" & 最終行).Value = Range("C3").Value Sheets("データ").Range("D" & 最終行).Value = Range("E3").Value          Sheets("データ").Range("C2:D2").ClearContents Sheets("データ").Range("C3, E3").ClearContents MsgBox "登録しました" ActiveSheet.Protect Password:="×××", DrawingObjects:=True, contents:=True, UserInterfaceOnly:=True End Sub   超初心者で、何をどうしたらいいのかまったくわかりません。   なるべく専門用語がないように   ご指導いただくとありがたいです。   非常に困っておりますので、よろしくお願いします。   

  • エクセルのマクロを有効にしないと表示しないようにする方法

    エクセルでマクロを有効にしないと、シートが表示されないように設定したいのですが、下記の様に(ほかの方の投稿から)入力すると三行目がエラーになります。素人なので、よくわかりません。どのようにしたら、マクロを有効にしないと全てのシートを表示しないようにできるのでしょうか? ご教授いただけますでしょうか Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheets(\"Sheet1\").Visible = False Sheets(\"Sheet2\").Visible = False ActiveWorkbook.Protect Password:=\"error123\" End Sub Private Sub Workbook_Open() ActiveWorkbook.Unprotect Password:=\"error123\" Sheets(\"Sheet1\").Visible = True Sheets(\"Sheet2\").Visible = True Sheets(\"Sheet1\").Select End Sub

  • excel2000マクロエラー

    下記のマクロを実行したときにエラーがでます。 Sheets("売上日報").Select Application.CutCopyMode = False ActiveSheet.Unprotect Sheets("売上日報").Select ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenasios:=True エラーメッセージ アプリケーション定義またはオブジェクト定義のエラーです。 下記のところでマクロがとまります。 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenasios:=True

専門家に質問してみよう