直前のシートに戻すマクロいろんな人の見ながらこれで行けたらいいのにと思ってみたんですが、出来てるでしょうか?また、まだ短くなるなら教えてください。
Sub マスタからコピーして戻って貼り付け()
Dim wshStart As Worksheet
Set wshStart = ActiveSheet
Sheets("マスタ").Select
Range("B1").Select
コピーして
wshStart.Select
Range("B1").Select
貼り付ける
End Sub
現場が携帯やUSB持ち込み出来ない為、紙に書いてダイレクトに入力しなければいけません、できるだけ短くしたいのです。
よろしくお願いします
No.5
- 回答日時:
#2の回答者です。
>1~20行目に入れた数式が変わってしまいました、そこでマスタに数式仮置きして、後で貼り付けようと考えてます。
具体的にどういう位置関係になるのか、まだ見当がつかない部分はあるものの、コードも手順も違っているように思っています。
あまり文章で書いても通じないでしょうから、希望に見合うものかどうかは分かりませんが、いくつかのテクニックを公開します。
1.数式を格納するテクニック
(ただし、途中でエラーを発生させると、メモリが飛んでしまいます)
つまり、壊れないようにするには、外部出力という方法もあります。
'--------------
Dim Ar()
Sub Test1()
Dim i As Long
ReDim Ar(1 To 20)
For i = 1 To 20
Ar(i) = Cells(i, 1).FormulaR1C1Local
Next
Range("A1:A20").ClearContents
MsgBox "A1:A20まで消されました。", vbInformation
End Sub
'-----次のマクロ----------
Sub Test2()
Dim i As Long
For i = 1 To 20
Cells(i, 1).FormulaR1C1Local = Ar(i)
'同じ場所に戻さないいけません。
Next
End Sub
2.罫線を一気に消すテクニック。
Sub Test3()
With Range("A10:B300")
.Borders.LineStyle = xlLineStyleNone
End With
End Sub
最後に気になるのは、「罫線だけを初期化してKBを減らす」ことができるのでしょうか。
Excel2007以降は、それ自体では、ほとんどファイルの大きさは変わらないはずです。
添付図は、1.の数式を一旦メモリに格納する方法。
ありがとうございます
KB1/4以下になったので多分2007以前なんだと思います、とまぁこんなレベルなんです(;^_^A
2.は短くて覚えれそうで、これで何もさわらなくてすむならほんとうに理想です、試してみます(。・ω・)ゞ
あと
すみませんすみませんm(_ _)mまた説明不足で
1は添付図を見てたら自分が思っているのと何か違う気がしましたm(_ _)m
例えばなんですが、B1にSAMでB18~1000行目までを合計してます
20~1000を削除するとSAMは18~19の式になっちゃうそんなイメージですm(_ _)m
でもせっかく頂いたのとどんな動きするのか興味あります、ゆっくり試してみますね。
No.4
- 回答日時:
No.1・3です。
投稿後気づきました。
>Dim wshStart As Worksheet
>Set wshStart = ActiveSheet
の2行が必要かどうか?ってコトですね。
No.1のコードそのままで大丈夫なので
必要ありません。m(_ _)m
No.3
- 回答日時:
No.1です。
補足の件について・・・
仮に「マスタ」Sheetがアクティブになっていると
wshStart とは「マスタ」シートになりますよね。
B1セルをそのまま同じSheetのB1にコピー&ペーストするコトになりますので、
マクロを実行しても見た目には何も変化しません。
すなわち、貼り付けたいシートをアクティブに(選択)しておいてマクロを実行しないと
コードそのものが意味のないものになると思います。
※ 質問文に忠実な動きにするためのコードなので、実際やりたいコトが具体的に判れば
お役に立てるかもしれません。m(_ _)m
No.2
- 回答日時:
すみません、他の方はわかるのかもしれませんが、どの程度、戻すのか程度が分からないのです。
バックアップを取ってまるごと戻してしまうのか、ご質問のような単に一箇所のセルを戻すのか、ということです。そもそも、戻すことにマクロ化するという意味は、マクロで処理したという意味になります。だから、マクロはマクロでということになりましょうけれども、全体が見えていないので、こんな解答しかできません。
Sub FromMasterSh()
Dim sh As Worksheet: Set sh = ActiveSheet
Dim mSh As Worksheet: Set mSh = Worksheets("マスタ")
mSh.Range("B1").Copy sh.Range("B1")
End Sub
おそらく、こういうことではないような気がします。
B1 to B1 ですが、それが任意の場所で、バックデータを戻すことではないでしょうか。
つまり、A1 to A1, C1 to C1 ということでは? ちょっと考えすぎかな?
こんばんは、ありがとうございます
説明不足でした
シートは12あるので、同じマクロで同じ動きしてほしいと思ってます
またB1もコピペも何でも良かったのです、ややこしくしてごめんなさいです_(^^;)ゞ
Tomさんとあわせて明日使わさせて頂きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Excel(エクセル) excel ピポットテーブルの更新について 1 2022/05/13 16:12
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルの一部分だけを太字にする方法
-
Excelのシート上のShapeにイベ...
-
エクセルで複数のシートのクリ...
-
Excelで数字を入れたら対応する...
-
Excel VBAでのWorksheet_Change...
-
エクセルのワークシート(テン...
-
自分の専門分野の仕事。初見で...
-
フォルダ内にある全ファイルの...
-
excel定数の違いについて。xlAu...
-
長い時間かかるマクロが実行中...
-
EXCEL マクロの記録で並べ替え...
-
エクセル初心者です 日報(Excel...
-
エクセルで検索バーのような表示
-
エクセルで特定の行だけ行削除...
-
Excelマクロでブック全体を検索...
-
EXCEL2002で、OnTime メソッド...
-
記録したマクロを他のシートに...
-
エクセルVBAでOUT LOOKメールに...
-
エクセルのチェックボックス誤作動
-
エクセルで○をつけるマクロ設定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
エクセルで複数のシートのクリ...
-
エクセルファイルを開いた回数...
-
Excelのシート上のShapeにイベ...
-
エクセルで特定の行だけ行削除...
-
長い時間かかるマクロが実行中...
-
エクセル シート内の一番下のセ...
-
【エクセル】フリーワード検索...
-
Excelでセル内の文字をファイル...
-
【エクセル】「実行時エラー’10...
-
シートではなくBOOK間で重複し...
-
フォルダ内にある全ファイルの...
-
EXCELのダイアログシートって、...
-
エクセル:セル内の文字列の最...
-
自分の専門分野の仕事。初見で...
-
セルの一部分だけを太字にする方法
-
エクセルで○をつけるマクロ設定
-
エクセル マクロ 一定時間おき...
-
Excelにて、同じ画像を複数のセ...
おすすめ情報
すみません、意味もわからず手探りでやってるので、今さらな質問しますm(_ _)m
アクティブな状態て言うのは先頭に
Dim wshStart As Worksheet
Set wshStart = ActiveSheet
この2行は要るって事ですよね?
実際にやりたい事ですが
12個のシートとマスタシートが有ります。
罫線だけを初期化してKBを減らす為、20から1000行目までをコピーして、1001行目に罫線以外を貼り付け20~1000行を削除します、ここで問題が(;^_^A
1~20行目に入れた数式が変わってしまいました、そこでマスタに数式仮置きして、後で貼り付けようと考えてます。
マクロでダイレクトに入れようとしたいのですが途中で列挿入されたらアウトだと思いあきらめました(;^_^A
すみませんこれでわかるでしょうか?
テクニックの 2.なんですが、申し訳ありません自分でマクロ記録して再生するのとさほど変わらないです(;^_^A
文中の=抜けてるし、全てに薄い罫線貼り付けて 5倍以上 の重さに膨れ上がりました ちなみにエクセルは97 と 7 と2013 などでした、でも大変勉強になったし楽しかったです(^-^)ありがとうございました。