end-u の回答履歴

全1157件中61~80件表示
  • ブックの共有をしているexcelファイルの複製

    ブックの共有を設定しているbook1.xlsというexcelファイルがあります。 ブックの共有を行なっているとだんだんデータサイズが肥大化してくるので、その対策として 【1】"book1.xls"のシート単位で全て新しい"book2.xls"にコピーする。 【2】"book1.xls"を別のフォルダへ移動。 【3】"book2.xls"の名前を"book1.xls"に変え、ブックの共有設定を行う。 ということをしています。 これらの作業を自動で行えたらと思うのですが、 タスクスケジューラー?.batファイル?VBA?など、何をどう組み合わせたらよいのかがよくわかりません。 アドバイスよろしくお願いします。

  • ExcelのVBAでのグラフ操作について

    Excel2003からExcel2010にアップグレードしたのですが、グラフ操作について質問があります。 Excelのブックにグラフシートがあり、それをVBAで操作した後、2003では ActiveChart.Deselect で選択を解除できたのですが、2010には同じ構文が使用できません。 同様の操作を2010で行うためにはどうすればよいのでしょうか?

  • ExcelのVBAでのグラフ操作について

    Excel2003からExcel2010にアップグレードしたのですが、グラフ操作について質問があります。 Excelのブックにグラフシートがあり、それをVBAで操作した後、2003では ActiveChart.Deselect で選択を解除できたのですが、2010には同じ構文が使用できません。 同様の操作を2010で行うためにはどうすればよいのでしょうか?

  • Excelのグラフを動的に作成したい。

    Excelのバージョン:2002 Excelのグラフ機能を使ってグラフを作成しており、「名前の定義」を利用して ドロップダウンリストの中身でグラフが変化するところまでは出来たのですが 本来の目的が上手く行きません。 以下に、自身で作成した変化するグラフの手法を書きます。 0:項目軸と値にそれぞれA~Eまでの5種類のパターンがあるデータを用意。 1:項目軸A~Eまでのデータ範囲にそれぞれ「項目軸A」、「項目軸B」…… と名前の定義をする。 2:値A~Eまでのデータ範囲にそれぞれ「値A」、「値B」…… と名前の定義をする。 3:A1セルにA~Eまでのドロップダウンリストを作成する。 4:「名前の定義」から「sheet1!項目軸(シート固有)」という名前で参照範囲に「=INDIRECT("項目軸"&sheet1!$A$1)」と入力する。 5:「名前の定義」から「sheet1!値(シート固有)」という名前で参照範囲に「=INDIRECT("値"&sheet1!$A$1)」と入力する。 6:グラフツールを使って棒グラフを作成。 グラフの「元のデータ」にて、「系列」タブを開いて系列を追加。  値に「sheet1!値」、項目軸ラベルに「sheet1!項目軸」を入力してグラフを作成。 7:ドロップダウンを変化させると、ドロップダウンの表示に対応したグラフが表示される。 本来の目的は、 3のA1セルに自身のシート名を取得する式を記入して、このシートを複数作成し、 シート名をA、B、……と変更する事によって、自動的にグラフが変化していく物を作りたいのですが シートを複製した途端、グラフの「項目軸」と「値」に{100,200,……}と言った形で実際の値がコピーされてしまいます。 なんとか上手く作成する方法はありますでしょうか? ご教授の程、よろしくお願い致します。

  • フォームの配置(EXCEL2003と2010)

    EXCELで、マクロを使用してチャートのグラフエリア上にチェックボックスを配置しようとしています。 凡例の座標を基準にして、プロットエリアと凡例エリアの間におこうと思っています。 下記のコードで、私のパソコンの環境(windows XP 2002 SP3office excel2003 sp3)ではうまく行ったのですが、 別のパソコン(windows7 office excel2010)だとうまく行きませんでした。 (excel2010では凡例エリアにチェックボックスが重なるようになってしまいました。) excel2003とexcel2010の両方で同じように配置をしたいのですが、どうすればいいでしょうか。 ----- private datacount  'データの数 - 別のプロシージャで1~5までの値が入ります。 Sub Ckb_Add()   Dim b, lw, w, h As Variant   Dim i As Integer   'チェックボックスの配置のため プロットエリアと凡例エリアの大きさを調整   ActiveChart.PlotArea.Width = ActiveChart.PlotArea.Width * 0.95   ActiveChart.Legend.Height = ActiveChart.Legend.Height * 1.5   ActiveChart.Legend.Width = ActiveChart.Legend.Width * 1.1   ActiveChart.Legend.Left = ActiveChart.Legend.Left - 0.01 * ActiveChart.ChartArea.Width   b = 2                ' チェックボックス縦方向のずれ   lw = ActiveChart.Legend.Width / 8  ' チェックボックスと凡例エリアの間隔   w = 5                ' チェックボックスの幅   h = 3                ' チェックボックスの高さ   For i = 0 To datacount - 1     ' データの数(datacount)分だけチェックボックスを作成     'チェックボックス作成     ActiveChart.CheckBoxes.Add(ActiveChart.Legend.LegendEntries(i + 1).Left - lw, ActiveChart.Legend.LegendEntries(i + 1).Top - b, w, h).Select     Selection.Characters.Text = ""     Selection.Value = xlOn     Selection.OnAction = "CK" & i + 1 & "_Click"   ' クリックされたとき、別のプロシージャを駆動する。   Next End Sub

  • フォームの配置(EXCEL2003と2010)

    EXCELで、マクロを使用してチャートのグラフエリア上にチェックボックスを配置しようとしています。 凡例の座標を基準にして、プロットエリアと凡例エリアの間におこうと思っています。 下記のコードで、私のパソコンの環境(windows XP 2002 SP3office excel2003 sp3)ではうまく行ったのですが、 別のパソコン(windows7 office excel2010)だとうまく行きませんでした。 (excel2010では凡例エリアにチェックボックスが重なるようになってしまいました。) excel2003とexcel2010の両方で同じように配置をしたいのですが、どうすればいいでしょうか。 ----- private datacount  'データの数 - 別のプロシージャで1~5までの値が入ります。 Sub Ckb_Add()   Dim b, lw, w, h As Variant   Dim i As Integer   'チェックボックスの配置のため プロットエリアと凡例エリアの大きさを調整   ActiveChart.PlotArea.Width = ActiveChart.PlotArea.Width * 0.95   ActiveChart.Legend.Height = ActiveChart.Legend.Height * 1.5   ActiveChart.Legend.Width = ActiveChart.Legend.Width * 1.1   ActiveChart.Legend.Left = ActiveChart.Legend.Left - 0.01 * ActiveChart.ChartArea.Width   b = 2                ' チェックボックス縦方向のずれ   lw = ActiveChart.Legend.Width / 8  ' チェックボックスと凡例エリアの間隔   w = 5                ' チェックボックスの幅   h = 3                ' チェックボックスの高さ   For i = 0 To datacount - 1     ' データの数(datacount)分だけチェックボックスを作成     'チェックボックス作成     ActiveChart.CheckBoxes.Add(ActiveChart.Legend.LegendEntries(i + 1).Left - lw, ActiveChart.Legend.LegendEntries(i + 1).Top - b, w, h).Select     Selection.Characters.Text = ""     Selection.Value = xlOn     Selection.OnAction = "CK" & i + 1 & "_Click"   ' クリックされたとき、別のプロシージャを駆動する。   Next End Sub

  • exelのハイパーリンクの設定

    exel2007、windows7を使用しています。 ハイパーリンクのリンク先は画像ファイルを指定しています。 xpだったときはexelのハイパーリンクを踏んだ際、画像とFAXのビューワが立ち上がるように設定できていたのですが、今の環境ではIEが開いてしまい、直せません。 どうしたら設定できますか?

  • EXCEL2007 VBAでピボットのフィルタ指定

    EXCEL 2007 VBAでピボットテーブルを生成しようとしております。 レポートフィルタで初期表示するデータフィールド「メーカー」の値も 指定できればと思っております。 「メーカー」には今回データで「A」「B」「C」「D」「E」とあったとして 「メーカー」 ... 「A」と「C」だけで表示指定したいとして、 下記操作で記録マクロを取ってみました。 1. レポートフィルタ「メーカー」を追加 2. フィルタ条件で「(すべて)」のチェック外して、全て消す。 3. 「メーカー」 ... 「A」と「C」を指定 結果は希望通りなのですが、 記録マクロを確認すると下記のように「A」と「C」で指定できておりません。 これだとメーカー「F」のデータが追加された際、 希望通りでないと思うのですが、良い方法をどなたかご存じないでしょうか? ActiveSheet.PivotTables("数量予測").PivotFields("メーカー").CurrentPage = "(All)" With ActiveSheet.PivotTables("数量予測").PivotFields("メーカー") .PivotItems("B").Visible = False .PivotItems("D").Visible = False .PivotItems("E").Visible = False End With

  • EXCEL2007 VBAでピボットのフィルタ指定

    EXCEL 2007 VBAでピボットテーブルを生成しようとしております。 レポートフィルタで初期表示するデータフィールド「メーカー」の値も 指定できればと思っております。 「メーカー」には今回データで「A」「B」「C」「D」「E」とあったとして 「メーカー」 ... 「A」と「C」だけで表示指定したいとして、 下記操作で記録マクロを取ってみました。 1. レポートフィルタ「メーカー」を追加 2. フィルタ条件で「(すべて)」のチェック外して、全て消す。 3. 「メーカー」 ... 「A」と「C」を指定 結果は希望通りなのですが、 記録マクロを確認すると下記のように「A」と「C」で指定できておりません。 これだとメーカー「F」のデータが追加された際、 希望通りでないと思うのですが、良い方法をどなたかご存じないでしょうか? ActiveSheet.PivotTables("数量予測").PivotFields("メーカー").CurrentPage = "(All)" With ActiveSheet.PivotTables("数量予測").PivotFields("メーカー") .PivotItems("B").Visible = False .PivotItems("D").Visible = False .PivotItems("E").Visible = False End With

  • VBAで図形同士をコネクタで繋いでいく方法

    現在、以下のようなことを行えるマクロを作成しています。 <表1> Name, Distance, Next A,   10,     B B,   5,      D C,   7,      - D,   15,     C <表1>の内容を元にしてNameの図形(四角)を用意。 A,B,C,Dそれぞれ図形があり、Distanceの数で図形の幅を変える。 Nextの順で図形をコネクタで順に繋いでいきます。 イメージ) [  A  ] - [ B ] - [ D ] - [   C   ] 単に図形を作成したり、コネクタで繋ぐだけならできたのですが、 表から名前を持ってきたりとかになると、お手上げ状態です。 どうかお知恵をお借りできないでしょうか。 環境 : Windows7/Office 2010

  • エクセル2007のVBAでオートフィルタのチェック

     エクセル2007のVBAでオートフィルタのチェックを特定の日付のみに入れたいのです。 (同様の質問をしておりますが、質問の意図が伝わらなかった、意味不明だったのか、ご検討中なのか、こちらで再度質問させて頂きます。)  ユーザー設定フィルタでは視覚的に解りつらい為、フィルタの▽をクリックした時に、チェックがされている事を確認したいのです。 【シート1の内容】 セルA1から行方向に数字の1~4 セルB1から行方向に、日付、値1、値2、% ’日付は過去1年~未来1年分です。 セルA3から列方向に、書式は yyyy/m/d セルB3とC3から列方向に、ランダムな整数 セルD3から列方向に、“=B3/C3”が入力されており、書式は パーセンテージ(小数点以下の桁数は“1”) セルF2に 2012(年)、セルG2に 9(月)、セルH2に 閾値として 10.5% 【目的】 動きとしては、過去1年前~2012年9月末日までのデータの内、閾値以上の結果を出すつもりで書きました。 【質問】 フィルタがかかった▽をクリックした時に、指定した範囲の日付チェックボックスにチェックを入れたいのです。 試行錯誤の状態のコードで失礼します。 Selection.AutoFilter Field:=1, Criteria1:=Array("日付"), Operator:=xlFilterValues, _ Criteria2:=Array(buf) この部分のbufの記述方法が、わかりません。 Sub Sample1() Dim TargetDate As Date Dim YY As Integer Dim MM As Integer Dim DD As Date Dim EoD As Integer Dim MaxRow As Integer Dim i As Integer Dim buf As Variant Selection.AutoFilter YY = ActiveSheet.Range("F2").Value MM = ActiveSheet.Range("G2").Value DD = YY & "/" & MM & "/1" EoD = Day(DateAdd("d", -1, DateAdd("m", 1, DD))) MaxRow = Range("A1").End(xlDown).Row TargetDate = YY & "/" & MM & "/" & EoD 'TargetDate = Format(YY & "/" & MM & "/" & EoD, "m/d") 'TargetDate = DateValue(YY & "/" & MM & "/" & EoD) 'MsgBox TargetDate For i = 3 To MaxRow With Worksheets("Sheet1").Cells(i, 4) .Activate .FormulaR1C1 = "=R[-0]C[-2]/R[-0]C[-1]" .Style = "Percent" .NumberFormatLocal = "0.0%" End With Next i buf = "" For d = 0 To 365 ' If d = 0 Then ' buf = "2, " & """" & TargetDate - d & """" ' ElseIf d >= 1 Then ' buf = buf & ", 2, " & """" & TargetDate - d & """" ' End If ' If d = 0 Then ' buf = "2, " & """" & Format(TargetDate - d, "m/d/yyyy") & """" ' ElseIf d >= 1 Then ' buf = buf & ", 2, " & """" & Format(TargetDate - d, "m/d/yyyy") & """" ' End If 'buf = buf & " 2, " & """" & Format(TargetDate - d, "yyyy/m/d") & """" 'buf = buf & " 2, " & """" & DateValue(TargetDate - d) & """" 'buf = buf & "2, " & """" & DateValue(TargetDate - d) & """" 'If d <> 365 Then ' buf = buf & """" & DateValue(TargetDate - d) & """" & ", " 'Else ' buf = buf & """" & DateValue(TargetDate - d) & """" 'End If If d <> 365 Then buf = buf & """" & TargetDate - d & """" & ", " Else buf = buf & """" & TargetDate - d & """" End If 'Range("N1") = buf Next d Range("A1").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:=Array("日付"), Operator:=xlFilterValues, _ Criteria2:=Array(buf)   'ここでエラーを検出してます。 'Criteria2:=Array(2, "2012/3/5", 2, "2012/08/11", 2, "2014/5/6") End Sub 皆様、良いお知恵をお貸し下さい。。。 OSは、WinXPとWin7共動いて欲しいです。 宜しくお願い致します。

  • エクセル2010使い方-ピボットテーブル-

    エクセル2010で作成した、ピボットテーブルの 同一項目を選択するにはどうすればよいでしょうか。 以前は項目の始まりにマウスを合わせると、矢印にかわり、 一括して同一項目を選択できたのですが。 行の小計を選択するのをマクロに書くと、こんな感じなのですが。 Sub 小計を選択() ActiveSheet.PivotTables("ピボットテーブル").PivotSelect "行ラベル[All;Total]", _ xlDataAndLabel, True End Sub よろしくお願いいたします。

  • Excelで外部データを取得する方法の解説本

     Excel初心者です。  ExcelでWebページのデータを取得する方法には、XMLHTTPオブジェクトを使う方法とIEオブジェクトを使う方法があるそうですが、これらの方法について詳しい解説本(できれば例文が多いと助かります)、サンプルブックがあれば紹介してください。  よろしくお願いします。

    • 締切済み
    • noname#173283
    • Visual Basic
    • 回答数2
  • VBAでのprintOut時にエラーが発生します。

    Excel2010のVBAで新たに作成した分のシートだけを印刷する処理を書いているのですが、 印刷(printOut)の所で次のエラーが出てしまいます。 【オブジェクト変数またはWithブロック変数が設定されていません。】 解決策をご教授願います。よろしくお願いします。 Dim firstSheetsMaisu As Integer '最初のシート枚数 Dim sheets As Worksheet Dim sheetIndexArray() As Integer   '配列 Dim hairetuSu As Integer        '要素数 firstSheetsMaisu = 4 '最初のシート枚数を4に設定 sheetsMaisu = Worksheets.count '新たに作成した分を含めた現在のシート枚数 Application.DisplayAlerts = False  '最初のシート分を除いた作成したシート文を配列に格納します。 For i = sheetsMaisu To firstSheetsMaisu + 1 Step -1 Worksheets(i).Activate ActiveSheet.PageSetup.PaperSize = xlPaperA4 ReDim Preserve sheetIndexArray(hairetuSu) sheetIndexArray(hairetuSu) = i hairetuSu = hairetuSu + 1 Next   sheets(sheetIndexArray).printOut  '←ここでエラーが発生します。 sheets("入力項目").Select Application.DisplayAlerts = True

  • ExcelVBAでCSVファイル簡単に取り込む

    ExcelVBAでCSVファイル簡単に取り込むコードを教えてください。 OpenコマンドでCSVファイルを開いて、 自分でカンマ毎に切り分けてセルにセットするやり方はできるのですが、 もっと簡単な方法はありませんか? イメージとしてはExcelの「外部データのインポート」機能が近いのですが この機能を使って取り込むと、何やら余計な情報がくっついてしまうようです。 あくまでテキスト情報だけをセルに貼り付けたいのです。 (ちなみに「外部データのインポート」で都合が悪い点は Ctrl+*で65536行目まで選択されてしまうところです。 何行目までデータがあるか?をCtrl+*で調べているためです。 ・・・Range("A65536").End(xlUp)で調べればいいのかもしれませんが・・・) 何か良いやり方をご存知の方はいらっしゃいませんか?

  • エクセル2007で既に開かれているCSVファイル

    のセルA1に特定の文字が入力されているファイルに対してマクロを実行したいのです。 会社のイントラネットから各種データを開くと(ダウンロードではありません。)以下のファイル名になります。 list.csv , list(1).csv , list(2).csv , list(4).csv , … , list(n).csv ←list(3).csvは不要だったので閉じられている例です。 マクロ実行前に、例えば list.csv と list(4) のセルA1に特定の文字が入力されている場合は、どちらかを選択するか、処理を中止する。(希望は前者ですが。。。) 対象のCSVファイルが無ければ(CSVファイルが開かれていない、または、A1が不一致)メッセージを出力する。 Sub Sample() Dim myChkBook As Workbook Dim i As Integer On Error GoTo Err0 Set myChkBook = Workbooks("List.csv") 'この時にセルA1の文字を比較したいです。 Call 処理 Exit Sub Err0: For i = 1 To 5 '←5は少なくとも list(n).csv のnまで処理したい。 On Error Resume Next Set myChkBook = Workbooks("List(" & i & ").csv") '←現状では、開かれていないファイルが On Error GoTo 0                      'あるとエラーになってしまいます。 Call 処理 Exit Sub Next i Exit Sub Err1: MsgBox "対象のCSVファイルが見つかりませんでした。" End Sub 出だしで躓いてしまい、悩んでおります。 良い方法をご教示いただければと思い、質問致します。 宜しくお願い致します。

  • VBAでご相談です!

    Excel2010使用。 VBA初心者です。 VBAでご相談させて下さい。 複数のファイルを1つにまとめる 作業をしたいと思い、ググったところ あるサイトで下記のコードを見つけました。 ただ、このコードでは、ファイルをダイアログから 選択する形になります。 これを、ファイルを指定した状態で実行させたいと思い、 自分で試してみたのですが、上手くいきませんでした。 同一フォルダ内には4つのファイルがあり、全て同じ様式の シートが複数あります。ただ、フォルダ名が毎月変更になります。 この同一フォルダ内のデータの中の特定のシートを一つのシートに まとめたいと考えているのですが、可能でしょうか? 可能であれば、アドバイスいただけるとありがたいです。 Sub sample() Dim myPath As String Dim wb_A As Workbook, wb_B As Workbook Dim i As Long, s As Long myPath = Application.GetOpenFilename(("Excel ファイル (*.xls), *.xls"), , "データを蓄積するブックを選択して下さい。") If myPath = "False" Then Exit Sub Set wb_A = Workbooks.Open(myPath) myPath = Application.GetOpenFilename(("Excel ファイル (*.xls), *.xls"), , "データを取得するブックを選択して下さい。") If myPath = "False" Then Exit Sub Set wb_B = Workbooks.Open(myPath) With wb_B For i = 1 To .Worksheets.Count 'wb_Bループ For s = 1 To wb_A.Worksheets.Count 'wb_Aループ '同じ名前のシートがあるとき データコピー If .Worksheets(i).Name = wb_A.Worksheets(s).Name Then .Worksheets(i).Range("A1").CurrentRegion.Copy _ wb_A.Worksheets(i).Range("A65536").End(xlUp).Offset(1) Exit For End If '同じ名前のシートが無いとき シートコピー If s = wb_A.Worksheets.Count Then .Worksheets(i).Copy Before:=wb_A.Sheets(1) End If Next s Next i wb_B.Close False MsgBox "完了" End With End Sub ※長文、説明下手で申し訳ありませんが よろしくお願いします。 <参考URL>   http://www.excel.studio-kazu.jp/kw/20040709212700.html

  • copyRecordsetの数値16桁以上について

    こんにちわ! 宜しくお願いします。 Excelマクロについての質問です。 Excelのバージョンは2010を使用しています。 OracleDB + ODBにADOで接続し、SELECT文を発行した結果をrecordsetに格納し、 copyFromRecordsetで表に転記しています。 問題は、「数値が16桁」以上の場合、Excelくんがよろしく15桁にあわせてしまうことです。 (数値は15桁までの仕様というのは知っています。) セルの書式設定を文字列にすれば問題ないのでしょうが、copyFromRecordsetメソッドを使うと、「標準」に戻されてしまいます。 下記の方法を参照しましたが、もう少し簡単に実装できないかと思いご質問させて頂きました。 http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=70229;id=excel _/_/_/_/_/_/_/_/_/_/以下サンプルです。_/_/_/_/_/_/_/_/_/_/ 'ADOコネクションの生成 cn.Open "Provider=OraOLEDB.Oracle;Data Source=" & ActiveSheet.Cells(26, 1) & ";User ID=scott;Password=tiger;", "scott", "tiger" 'ADOレコードセットの生成(全データを返すレコードセットの生成) rs.Open "select * from emp", cn, adOpenDynamic, adLockOptimistic, adCmdText cn.Range("A4").CopyFromRecordset rs _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ どうか宜しくお願い致します。

  • エクセルVBA

    どうしても解らないため,ご教授ください. いま,ユーザーフォームAとBがありAで主にプログラムを走らせます.BはAで 処理している内容(ファイル名)を表示させるだけです. そこで以下のようなプログラムを組んだのですが,リアルタイムに更新されず真っ白な ままになってしまいます.フォームBに変数を渡して行おうとしましたがこれもうまく 行かず,今はフォームAからBを操作しています. ラベルを使用していますがテキストボックスでもリストボックスでも 同様なことが起こってしまいます.何が悪いのかさっぱり解りません よろしくお願いいたします. buf = openfilename & "処理中" If ic > 1 Then buf = UserForm2.Label1.Caption & vbCr & buf End If UserForm2.Label1.Caption = buf

  • エクセル2007のVBAでオートフィルタのチェック

     エクセル2007のVBAでオートフィルタのチェックを特定の日付のみに入れたいのです。 (同様の質問をしておりますが、質問の意図が伝わらなかった、意味不明だったのか、ご検討中なのか、こちらで再度質問させて頂きます。)  ユーザー設定フィルタでは視覚的に解りつらい為、フィルタの▽をクリックした時に、チェックがされている事を確認したいのです。 【シート1の内容】 セルA1から行方向に数字の1~4 セルB1から行方向に、日付、値1、値2、% ’日付は過去1年~未来1年分です。 セルA3から列方向に、書式は yyyy/m/d セルB3とC3から列方向に、ランダムな整数 セルD3から列方向に、“=B3/C3”が入力されており、書式は パーセンテージ(小数点以下の桁数は“1”) セルF2に 2012(年)、セルG2に 9(月)、セルH2に 閾値として 10.5% 【目的】 動きとしては、過去1年前~2012年9月末日までのデータの内、閾値以上の結果を出すつもりで書きました。 【質問】 フィルタがかかった▽をクリックした時に、指定した範囲の日付チェックボックスにチェックを入れたいのです。 試行錯誤の状態のコードで失礼します。 Selection.AutoFilter Field:=1, Criteria1:=Array("日付"), Operator:=xlFilterValues, _ Criteria2:=Array(buf) この部分のbufの記述方法が、わかりません。 Sub Sample1() Dim TargetDate As Date Dim YY As Integer Dim MM As Integer Dim DD As Date Dim EoD As Integer Dim MaxRow As Integer Dim i As Integer Dim buf As Variant Selection.AutoFilter YY = ActiveSheet.Range("F2").Value MM = ActiveSheet.Range("G2").Value DD = YY & "/" & MM & "/1" EoD = Day(DateAdd("d", -1, DateAdd("m", 1, DD))) MaxRow = Range("A1").End(xlDown).Row TargetDate = YY & "/" & MM & "/" & EoD 'TargetDate = Format(YY & "/" & MM & "/" & EoD, "m/d") 'TargetDate = DateValue(YY & "/" & MM & "/" & EoD) 'MsgBox TargetDate For i = 3 To MaxRow With Worksheets("Sheet1").Cells(i, 4) .Activate .FormulaR1C1 = "=R[-0]C[-2]/R[-0]C[-1]" .Style = "Percent" .NumberFormatLocal = "0.0%" End With Next i buf = "" For d = 0 To 365 ' If d = 0 Then ' buf = "2, " & """" & TargetDate - d & """" ' ElseIf d >= 1 Then ' buf = buf & ", 2, " & """" & TargetDate - d & """" ' End If ' If d = 0 Then ' buf = "2, " & """" & Format(TargetDate - d, "m/d/yyyy") & """" ' ElseIf d >= 1 Then ' buf = buf & ", 2, " & """" & Format(TargetDate - d, "m/d/yyyy") & """" ' End If 'buf = buf & " 2, " & """" & Format(TargetDate - d, "yyyy/m/d") & """" 'buf = buf & " 2, " & """" & DateValue(TargetDate - d) & """" 'buf = buf & "2, " & """" & DateValue(TargetDate - d) & """" 'If d <> 365 Then ' buf = buf & """" & DateValue(TargetDate - d) & """" & ", " 'Else ' buf = buf & """" & DateValue(TargetDate - d) & """" 'End If If d <> 365 Then buf = buf & """" & TargetDate - d & """" & ", " Else buf = buf & """" & TargetDate - d & """" End If 'Range("N1") = buf Next d Range("A1").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:=Array("日付"), Operator:=xlFilterValues, _ Criteria2:=Array(buf)   'ここでエラーを検出してます。 'Criteria2:=Array(2, "2012/3/5", 2, "2012/08/11", 2, "2014/5/6") End Sub 皆様、良いお知恵をお貸し下さい。。。 OSは、WinXPとWin7共動いて欲しいです。 宜しくお願い致します。