Set WB1SH1 = WB1.Worksheets(1) ' または Set readSheet = readBook.Worksheets(sheetIndex)  Dim I As Long メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。 ' 例えば .Axes(xlValue, xlPrimary).HasTitle = False MsgBox (" >>> 初期値入力します <<< ") ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="0810p2x" 部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。 本当にありがとうございました。, WindFaller様 どういう意味のものかわかりません。 上記の例では、RangeとかCellsの上位オブジェクトであるシート名が省略されています。 と書いておけば安心です。 ------------ Sub hokangosa() ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。 Selection.Copy ← これを無効にしている Activeなシートが、Sheet2の場合はエラーになりません。 ThisWorkbook.Name 以下の場合、貼り付け処理でエラーになります。 'カレントディレクトリ しかし、ActiveなシートがSheet2以外の場合、エラーが発生します。 Application.CutCopyMode = False Workbooks.Open "C:\Users\User\Desktop\" & a & ".CSV" モータ  U-1325-L   A列     B列     C列       基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。 HENSU = Chr(34) & "A1" & ":" & "C4" & Chr(34) Range("A1:C4").Borders.LineStyle = True End Sub 常にファイル名を取得出来るVBAをどなたか、教えて下さい。, >現在開いているブックのファイル名 MaxRow = CSVWB1SH1.Cells(Rows.Count, 1).End(xlUp).Row .HasTitle = True Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照 Sub Sample() Range("A2").Select >Subプロシージャ名の直下から、Dim の変数定義の宣言をまとめるというのが通例 シートを変えずに他のシートから値を取得する方法はないのでしょうか。 Dim readBook As Workbook ' 相手ブック 上記の例では、Rangeのみシート名が記述されています。 部品表は、何百種類もありますので、関数...続きを読む, こんにちは。 見事動きました!! Dim HENSU As String '←変数の宣言をします。 というわけです。 Range("A2").Select  Application.ScreenUpdating = True Dim readBook As Workbook ' 相手ブック  xlBook.Close Dim a As String D:\2005年度\予算.xls ホルダ  R-134256 というわけです。 どなたか説明頂けませんか?  I = 2 b = ActiveWorkbook.Path 以下の場合、貼り付け処理でエラーになります。 Dim readSheet As WorkSheet ' 相手シート 回答をメールで確認できたおかげで午前中に出先で処理ができました。 新しい単語があれば、文字カーソルを単語の上に置き、F1キーを押してVBAのヘルプを必ず見るようにしています。  Dim xlBook 引数で、対象桁を変更できます。, 初歩的な質問で申し訳ありませんが・・・ c = Application.DefaultFilePath CSVWB1SH1.Activate Windows("コード一覧表.xls").Activate Option Explicit        : Worksheets(2).Range("A1").Select アクティブでないワークシート内のセルを選択しようとすると次のエラーが表示されます。 「実行時エラー '1004': Range クラスの Select メソッドが失敗しました。 CURDIRでは上手い方法が見つかりませんでした。, こんばんは。 ご指導、ありがとうござます。 HENSU = "A1:C4" ' "A1:C4" を返します。←OK たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。 Range("A1").Select みたいな感じでできませんか?, 部品表というブックがあります DMN = Application.RoundDown(ZPOS / ZPS, 0) a = ThisWorkbook.Path Range(Cells(8, 1), Cells(1587, 2)).Select Next 自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。 このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。 これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。 ActiveSheet.Paste しました。 >VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり http://oshiete1.goo.ne.jp/kotaeru_reply.php3?q=4651404 などとしていれば、ActiveシートがSheet1になっていますから、エラーになります。 d = CurDir 削除しても差し支えないのもでしょうか?, 「Application.CutCopyMode = False」の前で >親オブジェクトの、Workbookも含まれていますから、2つにする必要はありません。 で、現在 "アクティブにして" 操作対象になっているブックの名前は End Sub, こんにちは。   シートAの値取得 ActiveSheet.Range(ActiveSheet.Cells(8, 1), ActiveSheet.Cells(1587, 2)).Select マクロ実行時に、Activeな(Excelで表示されている)シートが上位オブジェクトとして、自動的に認識されます。 部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。 ただいまエクセルでグラフを作成しています。作業自体は単純作業の繰り返しなのでVBAを用いてやりたいのですが、マクロを実行したときに実行時エラー’1004’rangeメソッドは失敗しました。’_global’オブジェクトとメッセージが出て、実行できません。 デバックをすると以下の5行目で黄色のバーが出ていました。自分なりに原因を考えたのですがrangeの関係するところに、Range("A8:A1587,e8:e1587")というような変数を用いないやり方でやると上手くいくので、変数に関する定義がまずいと思うのですが、それ以上の事は分かりません。どなたか、分かる方がおりましたら、よろしくお願いします。また、プログラムは以下のようになります。 セルのコピー、または切り取りを行っていると思います。 またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。, DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0) これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。 Set WB1 = ActiveWorkbook 'このブックのパス Charts.Add ActiveSheet.Range(ActiveSheet.Cells(8, 1), ActiveSheet.Cells(1587, 2)).Select http://www.kenzo30.com/excel_kiso.htm, >ご指摘を受けたところを書き換えて回してみた結果、書き換えた箇所 >しかし、何が原因でエラーになるか自分では分かりません。 やりたいことは ActiveChart.ChartType = xlXYScatter 上記の場合であれば、「Application.CutCopyMode = False」を削除しても問題ありませんが、 Range("A1").Select Web版を活用してみて自分にあっていそうだったら入手を考えてみます。  Loop With ActiveChart よろしくお願いします!, 私がやる方法です。 Selection.Copy Application.CutCopyMode = False With Sheets("Sheet2") モータ  U-1325-L     I = I + 1  Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★  Application.ScreenUpdating = False Range("cells(8,1):cells(1580,1),cells(8,s+2):cells(1580,s+2)").Select ------------ ...続きを読む, ※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。 For ~ To ~ 部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。 検索する = cells(i,2).Value 下記をモジュールシートへ貼り付けて試行してみて下さい。    "カレントディレクトリ : " & d & Chr(13) Dim s As Integer   Dim 検索する As Long Sheets("Sheet2").Range(Sheets("Sheet2").Cells(8, 1), Sheets("Sheet2").Cells(1587, 2)).Select ・エラーの内容は多岐に渡っており、実行時エラー '1004'「RangeクラスのPasteSpecialメソッドが失敗」が 一例として挙げられます。 ・何れの場合も、貼り付け時にエラーが発生している様です。 (項目2) Selection.Copy ← これを無効にしている   カレントフォルダ名 ActiveSheet.Paste ← ココでエラー ZPOS = Sheet1.Cells(22, 4).Value どうしても最後の行をセレクトしたいのですが、どうしたらよいでしょうか。 ActiveWindow.SmallScroll Down:=-3 自分では全く何がダメなのかわからず困り果てての質問だったため感動 # Sheets("Sheet2")の上位オブジェクトが省略されていることにも気がついてください。 Withはとても苦手で避けているところが自分にあります。 上記の例では、RangeとかCellsの上位オブジェクトであるシート名が省略されています。 早々のご回答ありがとうございます。 Dim writeSheet As Worksheet ' 自分自身の書き出し先シート もっと勉強して活用します。 上記のを行ってから別シートの値を取得するのですが、 Windows("部品表.xls").Activate Dim ZPS As Double ------------ DMN = ZPOS / ZPS Sub Sample1() Range("cells(8,s+2)").Activate ご指導、ありがとうございました。感謝いたします。, 「VBA 書き方」に関するQ&A: エクセルの表の集計をVBAでやりたいのです。, 世の中の成功している男性には様々な共通点がありますが、実はそんな夫を影で支える妻にも共通点があります。今回は、内助の功で夫を輝かせたいと願う3人の女性たちが集まり、その具体策についての座談会を開催しました。, VBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクトのエラー, エクセル:マクロ「Application.CutCopyMode = False」って?, VBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗, ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。, Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について, 始めまして、VBA初心者のものです。 ホルダ  R-134256 というわけです。 この処理を行うと指定したシートへ強制的にとんでしまいます。。。 AutoFilter【オートフィルター】オブジェクト.  Set xlBook = Workbooks....続きを読む, メインプログラム(EXCEL VBA)より、 を取得する事は可能でしょうか? End Sub, EXCELファイルのカレントフォルダを取得するには? 私自身は、入門書程度の雑誌を1冊買っただけです。どれが良いとかはよく分かりません。 Publicは「すべてのモジュールから呼び出せるプロシージャ」ということになります。 オートフィルターを表すAutoFilter【オートフィルター】オブジェクトを取得するには、Range【レンジ】オブジェクトのAutoFilter【オートフィルター】メソッドを実行して取得します。, また、オートフィルターが設定されているワークシートのオートフィルターを表すAutoFilter【オートフィルター】オブジェクトを取得するにはWorksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティを使用します。, ワークシートに設定されているオートフィルターを表すAutoFilter【オートフィルター】オブジェクトを取得するには、Worksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティを使用します。値の取得のみ可能です。, ワークシートにオートフィルターが設定されていない場合は、Noting【ナッシング】が返ります。, オートフィルターでデータが抽出されているデータ範囲の抽出を解除して全データを表示するには、オートフィルターを表すAutoFilter【オートフィルター】オブジェクトのShowAllData【ショーオールデータ】メソッドを使用します。, オートフィルターでデータが抽出されているかいないかを調べるには、AutoFilter【オートフィルター】オブジェクトのFilterMode【フィルターモード】プロパティを使用します。, 3行目【If ActiveSheet.AutoFilter.FilterMode = True Then】 ワークシートにオートフィルターが設定されている場合に実行される処理です。If【イフ】ステートメントを使用して条件分岐します。Worksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティを使用してワークシートに設定されているオートフィルターを表す AutoFilter【オートフィルター】オブジェクトを取得して、AutoFilter【オートフィルター】オブジェクトの フィルターで抽出されているかどうかを返すFilterMode【フィルターモード】プロパティの戻り値がTrueだったときつまりフィルターでデータが抽出されているときを定義します。, 4行目【MsgBox “データは抽出されています。”】 上記の条件分岐で条件が成立した場合、つまり、フィルターでデータが抽出されている場合 MsgBox関数を使用してメッセージを表示します。, 5行目~6行目【Else MsgBox “データは抽出されていません。”】 Else【エルズ】キーワードを使用して、条件が成立しなかった場合つまり、フィルターでデータが抽出されていない場合MsgBox関数を使用してメッセージを表示します。, 8行目~9行目【Else MsgBox “オートフィルターが設定されていません。”】 最初の条件分岐、つまり、オートフィルターが設定されていない場合MsgBox関数を利用してメッセージを表示します。, オートフィルター範囲でのすべてのフィルターを表すFilters【フィルターズ】コレクションを取得するにはAutoFilter【オートフィルター】オブジェクトのFilters【フィルターズ】プロパティを使用します。, []内は省略可能 オブジェクト.Filters( [Index] ) 【戻り値】Filtersコレクション Indexを指定した場合はFilterオブジェクト, オートフィルターが設定されているセル範囲を取得するには、AutoFilter【オートフィルター】オブジェクトのRange【レンジ】プロパティを使用します。, 以上で、オートフィルターを表すAutoFilterオブジェクトについての解説を終了します。 ありがとうございました。, 2行目【If ActiveSheet.AutoFilterMode = True Then】, 3行目【If ActiveSheet.AutoFilter.FilterMode = True Then】. '繰り返し Public CSVWB1 As Workbook Withステートメントを使えばスッキリ纏めることができます。 >しかし、何が原因でエラーになるか自分では分かりません。 HENSU = "A1" & ":" & "C4" ' "A1:C4" を返します。←OK 商品名  商品番号  コード Dim writeSheet As Worksheet ' 自分自身の書き出し先シート 以下の方法ではエラーになってしまうので、宜しくお願いします。 ・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。 Range(HENSU).Borders.LineStyle = True ExcelのVBAの質問になりますが、教えてください。下記を動かすと最後の行で「'Range'メソッドは失敗しました: '_Worksheet' オブジェクト」と出ますどうしても最後の行をセレクトしたいのですが、どうしたらよいでしょうか。Option Expli Range(Cells(8, 1), Cells(1587, 2)).Select 躓いた時は、Web検索して欲しい情報を得たり、あるいは、こうした掲示板で先輩方のお力をお借りしています。 Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照 VBAの[cellsメソッドは失敗しました。Global]エラーの考えられる理由は? C:\経理\予算.xls やりたいことは また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。 の方ですかね。, Worksheets("シート名").Activate よろしくお願いします。, 「Sub」の部分にカーソルを置いて[F1]を押せばヘルプが起動します。 WB1SH1.Activate その点滅がなくなります。, 「Application.CutCopyMode = False」の前で