- ベストアンサー
別のブックを開く時にシートを指定したい
今開いているブックから別のブックを開くマクロはわかるのですが、これから開くブック内のシートも指定したいのです。シート名はすべて数字3桁で登録してあるので開きたいシートの数字をC1のセルに入れておいて(この数字は随時変更される)開きたいのですがうまくいきません。例えばC1に「112」が入っている時Sheets(112).SelectではうまくいきますがSheets(C1).Selectではエラーになってしまいます、良い方法を教えて下さい。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (7)
- xls88
- ベストアンサー率56% (669/1189)
- xls88
- ベストアンサー率56% (669/1189)
- n-jun
- ベストアンサー率33% (959/2873)
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
- xls88
- ベストアンサー率56% (669/1189)
- xls88
- ベストアンサー率56% (669/1189)
関連するQ&A
- シートを別のブックに移動させたいのですが、
シートを別のブックに移動させたいのですが、 マクロで作成するとこうなりました。 Workbooks.Open Filename:= _ "C:\Documents and Settings\YUUKORON\My Documents\YYYY.xls" Windows("GGGG.xls").Activate Sheets("2010.4YY").Select Sheets("2010.4YY").Move Before:=Workbooks("YYYY.xls").Sheets(1) が、移動先のブック名が移動させたいシートのセルF1に入力されているので、ブック名YYYYをどのようにすればよいのか教えてください。 Workbooks.Open Filename:= _ "C:\Documents and Settings\YUMIKO\My Documents\" & Range("F1").Value & ".xls" Windows("GGGG.xls").Activate Sheets("2010.4YY").Select Sheets("2010.4YY").Move Before:=Workbooks("YYYY.xls").Sheets(1) 試してみた方法 Sheets("2010.4YY").Move Before:=Workbooks("("2010.4YY").Range("F1").Value.xls").Sheets(1) Sheets("2010.4YY").Move Before:=Workbooks _ ("C:\Documents and Settings\YUMIKO\My Documents\" & Range("F1").Value & ".xls").Sheets(1) どれもダメでした。 あと、今は、Sheet(1)の前となっていますが、常にブックの先頭に移動させることはできるのでしょうか? シート名は、2010.5YY、2010.6YY というふうに毎月増えていく予定です。 初心者です。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 同じブックに存在するシ-ト(X)の指定セル(A1:C10)を別のシート
同じブックに存在するシ-ト(X)の指定セル(A1:C10)を別のシート(Z)のA2セルへコピーしたいのですが、マクロの記録で入手したコードをコマンドボタンで実行するとエラーになってしまい、先へ進めません。 Private Sub CommandButton1_Click() Sheets("X").Select Range("A1:C10").Select ← この部分が黄色! Selection.Copy Sheets("Z").Select Range("A2").Select ActiveSheet.Paste End Sub 正しく動作させる方法を教えて下さい。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- シートのコード(マクロ)で別のシートを指定することはできますか?
環境はWINDOWS XP, EXCEL 2003 です。 VBAについて、初歩的な質問ですみません。 コードを書けるモジュールには Microsoft Excel Objects と標準モジュールとありますが、シートのコードでは、別のシート上のセルをオブジェクトとして指定することはできないのでしょうか? 今開いていて、ボタンのあるシートを、Sheet1 (基本画面)、読み込みたいデータがあるシート(同じブック内)をSheet3 (計算用)、とします。 基本画面のセルA1に日付を入力してから、「データ選択」ボタン(コントロールツールボックスで標準で出てくるボタンです)を押すと以下のマクロが動くようにしたため、このコードはSheet1のモジュールに書きました。 このマクロの前半に、日付が、計算用のC3に事前に書き込まれている日付と一致しているかどうかを判定させ、一致しない時は中断するようにさせたのです。マクロ後半は本題と関係ないと思うので省きます。 Private Sub データ選択_Click() '前半で下準備ができているか、チェック Hidzuke = Range("A1").Value Sheets("計算用").Select Atai = Range("C3").Value Sheets("基本画面").Select If Atai <> Hidzuke _ Then Range("A2").Value = "下準備ボタンを先に押してください" Exit Sub End If '以下、省略 End Sub すると、Range("C3").Value は、Sheets("計算用") の"C3"ではなく、 Sheets("基本画面") の方の"C3"を対象として読み込んでしまいました。私はシートのコードを書くことはあまり多くなく、標準モジュールと同じ感覚で、Sheets("計算用") の"C3"の値を読んだつもりだったのですが、シートのコードと標準モジュールでは、どのような違いに注意したら良いのでしょうか。 さらに不思議なことに、この"C3"を"C7"などに変えると、Ataiの中身が "準備完了" などの文字列になったのです。しかしこの"準備完了"という文字列は、現在のブックにはどこにもありません。今のファイルの前の前ぐらいまで、確かに、 Sheets("基本画面") の"C7"には、"準備完了" と書き込んでいました。なぜ、昔のセルの中身(値)がゴーストのように残ってしまうのでしょうか・・・。 ツリーで、標準モジュールは標準モジュールで、シート専用マクロはExcel Objects で、はっきりわかれていますから、私はここの違いから理解できていなくてこんな馬鹿な質問をしてしまうのだと思います。他のシートのセルをオブジェクトとして指定したければ、モジュールが増えて多少猥雑になってでも、Call などで標準モジュールを呼び出すしかありませんか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 別ブックのシート名称一覧を作成したい
excel2016 自ブックの中でシート名一覧作成というマクロはwebにあったのですが、 他ブックのシート名一覧を自ブックへ作成というのを どの様に対応したらよいのかがわかりません。 やりたい内容は、 ①自ブックを開く(シート収集するファイル) ②file_openマクロ実行 c:\workにあるfile.xlsmのブックを開く(file.xlsmが他ブック) ③file.xlsmの全シート名称一覧を 自ブックのsheet1シートのA1セルから下へシート名称記載させる。 file.xlsmに登録されているシート名称は日付と時刻と時刻 202110070830 202110071700 … みたいな12桁のシート名称になっている ③自ブックsheet1のB1からB列最終行(A列にデータがある最終行) まで必要なセルに1を設定 ④自ブックB列でセルに1があれば、他ブックの対象シートを自ブック へコピー 以上①~④をマクロで対応したいのですが ③の内容がわからないのでベタでマクロ教えていただきたく、よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- 別のブックから、特定のシートを指定して他のブックを開くには
マクロ初心者です。 A.xlsと、B.xlsという2つのブックがあります。 B.xlsはこの時、閉じた状態です。 Aには1つのシートのみがあって、Bには日毎に追加されていく不特定数のシートがあります。 Aのブックのシート内のセル番地A1に、「aaa」と入力した場合、B内の「aaa」という名前のシート名を指定してB.xlsを開くマクロはどう書いたら良いのでしょうか。 頼りきりの質問になってしまって申しわけございません。 何卒宜しくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- Excelでシートをコピーする時に「シート名が長すぎます」と表示される
環境 OS : Win2000 SP4 Office : Excel 2000 SP1 表題の通りでシート名「P.05-2_BK(-2)」を同じブック内でコピーしようとすると「シート名が長すぎます」とメッセージが出てコピーできません。 MSのサイトではシート名は半角31文字までOKと書いてあるのですが・・・ マクロでは大丈夫かな?と思い Sub Macro1() Sheets("P.05-2_BK(-2)").Select Sheets("P.05-2_BK(-2)").Copy After:=Sheets(24) End Sub と言うマクロを実行してみましたが、2行目で同じエラーが出ます。 また、ブックが悪いのかと思い、シートを新しいブックにコピーして、その新しいブック内でコピーしようとしても同様にエラーが出てコピーできません。 何故なんでしょう??
- ベストアンサー
- Visual Basic
- シートを別のブックに複数自動コピー
初質問です。よろしくお願いします。 マクロを使って、あるブックのシート(20から50枚程度)を、別の貼り付け先のブックに自動的にコピーしようとすると、10回をすぎたあたり(必ずしも一定せず)で 「実行時エラー'1004': WorksheetクラスのCopyメソッドが失敗しました。」 というエラーと共にマクロが止まり、デバッグしようとすると 「ActiveSheet.Copy After:=Workbooks("貼り付け先ブック.xls").Sheets("○○シート")」 のところで止まっています。 マクロの記述内容は以下の通りです。 Sheets("貼り付け元シート").Activate ActiveSheet.Copy After:=Workbooks("貼り付け先ブック.xls").Sheets("○○シート") Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Range("A1").Select Windows("貼り付け元ブック.xls").Activate ・・・以下貼り付け元シートを変えつつ複数回繰り返し これができる様になれば非常にラクになるので、ぜひご教授願います。
- ベストアンサー
- オフィス系ソフト
- エクセル マクロで別のブックに貼り付けたい!
作成したシートを別のブック(既存)にマクロを使って貼り付けたい のですが、いろいろ調べた結果以下のようにはすることができました。 ---------------------------------------------------------------- Sub SaveSheet() Dim sFileName As String 'ファイル名の設定 sFileName = "C:\a\test.xls" 'シートをコピーして新規ブックを作成 Sheets(Array("Sheet1", "Sheet2")).Copy '作成したブックの保存 ActiveWorkbook.SaveAs sFileName End Sub ---------------------------------------------------------------- これはとあるサイトで見つけたもので、私自身が作成したものでは ありません。 このマクロの問題は、 ○あらたにブック(シート)が作成されること (マクロ実行時は上書きになるので、変更できなくても使えないわけ ではない) ○元データはシート丸ごとであり、セル範囲を選択できない。 ○貼り付けるシートにおいても、任意の場所を起点とできない。 ということです。 整理しますと、『作成したシートの任意のセル範囲を、別に存在する ブックに、任意のセルを起点として貼り付けたい』 ということです。 どうかよろしくお願いします。m(_ _)m
- 締切済み
- オフィス系ソフト
- VBA 複数シートをまとめて別ブックに移動させる
Winは10、Excelは2016を使用しています。 複数シートをまとめて別ブック(新ブック)に移動させて、名前を付けて保存したいのですが、私の知識、理解が追い付かずに困っています。 シート名ではなく、シート番号で指定したいです。 移動させたいのは、左から3番目~27番目までのシートです。 Sub 移動 () Dim arr(2 To 26) As Integer Sheets(Arrar(arr)).Select Selection.Worksheets.Move '(保存場所選択と名前は手動でやります。) 'マクロが付いている移動元のブックは変更を保存せずに終了したいです。 おかしいところだらけですが、上記のおかしいところ、修正方法、追記文構文を教えて下さい。 よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- エクセルVBAの質問 開いているもう一つのブックのシート名をすべて取得する方法
おはようございます。 現在マクロを実行しているブックのシート名を下のようなコードで取得していますが、これを 開いているもうひとつのブックのシート名を マクロ実行しているシート“しーと1”のJ3セル以降に並べる というように変更したいのですが、下のコードを少し変更して 対応できるでしょうか?教えていただけたら助かります。 Sub シート名() Dim i As Integer Dim mySheetCnt As Integer Dim mySheetNam As String Application.ScreenUpdating = False Columns("J:J").Select Selection.ClearContents Range("J2").Select ActiveCell.FormulaR1C1 = "項目名" mySheetCnt = ThisWorkbook.Sheets.Count For i = 2 To mySheetCnt mySheetNam = Sheets(i).Name Sheets("しーと1").Cells(i, 10) = mySheetNam Next i Application.ScreenUpdating = True MsgBox "シート名更新しました。" End Sub
- ベストアンサー
- オフィス系ソフト
- 3ms間4000Nの衝撃荷重に対して、梁の強度設計をどう考えればいいですか
- 梁がせん断しないと目指しているが、普通に考えれば、4000Nでかける場合に曲がった梁の外周の引張応力を0.2%耐力応力を超えないようだけにすればOKですか。 それは塑性変形させない考え方ですか
- 塑性変形してもOK、せん断さえしなければっていう設計ありますか
お礼
ありがとうございます。そうなんですね文字か数値かというのはけっこうわかりづらくて、もう一度コードを見直してみます。