Excel2002ユーザーです。
sheet1上で実行するマクロで、画面を切り替えることなく、
いわば水面下でsheet2の行1に空行を挿入させ、常に最新のデータ(Sheet1上にあるセルの値)を書き込んでいく、
ということをしたいのです。
古いデータは順次、下に送られる形です。
まずデータの書き込み以前に、挿入ができないのです。
sheet1上のマクロで、
Worksheets("sheet2").Rows("1:1").Select
Selection.Insert Shift:=xlDown
と書き込みましたがダメでした。
(実行時エラー'1004': RangeクラスのSelectメソッドが失敗しました)
Sheets("sheet2").Select
Rows("1:1").Select
Selection.Insert Shift:=xlDown
の場合、行挿入はOKですが、sheet2に画面が切り替わってしまいます。
常にsheet1の画面を表示させたままにしてこのようなことを行いたいのですが、
良きアイデア、アドバイスがありましたら御教授ください。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
Sheets("sheet2").Range("1:1").Insert Shift:=xlDown
としてください。
早速のご回答ありがとうございます。
あっさり解決しました。。。
が、ユーザー定義関数の中で使うと機能しないのはなぜでしょう?
例えば
---------------------
Function FNC(a As String) As String
FNC = MsgBox(a)
Sheets("sheet2").Range("1:1").Insert Shift:=xlDown
End Function
---------------------
というように使うとダメなんです。
No.3
- 回答日時:
>ユーザー定義関数の中で使うと機能しないのはなぜでしょう?
エクセルVBAのFunctionプロセジュアでは、セル値を見て加工することと結果値を関数値として返すことしか認められません。
そういう仕様にしてしまっているのです。
他の言語の関数などを知っていると戸惑うのかも。
画面を変えるような、セル・シート挿入・削除・書式設定・セル値を変える・ソートなど一切出来ないのが、基本原則なのです。
Function aaa()
Cells(1, 1) = "bbb"
aaa = "ccc"
End Function
はD2セルなどにいれると、#VALUEエラー。
Function aaa()
aaa = "ccc"
End Function
はcccです。関数をセットするセルは別として、セルの値さえ触れません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) このプログラムなんですがsheetにデータを置いて表示できるようにしてありますがsheetに101を 2 2023/02/23 20:13
- その他(プログラミング・Web制作) ZWCAD CUIXとLISPの関係について 1 2022/09/28 03:07
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
Excelで数式内の文字色を一部だ...
-
エクセルで指定したセルのどれ...
-
Excelでのコメント表示位置
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
-
excelのCOUNTIF関数で、『範囲=...
-
エクセルのセルの枠を超えて文...
-
貼り付けで複数セルに貼り付けたい
-
エクセル 足して割る
-
excelの特定のセルの隣のセル指...
-
【Excel】 セルの色での判断は...
-
(Excel)数字記入セルの数値の後...
-
エクセルで作成したカレンダー...
-
Excelで、「特定のセル」に入力...
-
エクセルで全角ひらがなを半角...
-
エクセル オートフィルタで絞...
-
エクセルでオブジェクトを常に...
-
エクセルの一つのセルに複数の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
Excelで数式内の文字色を一部だ...
-
【エクセル】IF関数 Aまたは...
-
Excelでのコメント表示位置
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
セルをクリック⇒そのセルに入力...
-
EXCEL VBA セルに既に入...
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
エクセルの一つのセルに複数の...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
Excelで、「特定のセル」に入力...
-
Excel2003 の『コメント』の編...
-
Excelで教えてください。 バー...
-
複数のセルのいずれかに数字が...
-
(Excel)数字記入セルの数値の後...
-
Excelで住所を2つ(町名迄と番...
おすすめ情報