cj_mover の回答履歴

全798件中181~200件表示
  • ExcelVBA別フォルダにあるブックのコピー方法

    ExcelVBAでデータを条件に応じてコピーしたいと思っています。 同一階層に「VBAファイル.xls」「1_フォルダA」「2_フォルダB」「3_フォルダC」があります。 「1_フォルダA」と「2_フォルダB」には年代別に分かれたファイルがあります。 ファイルとフォルダの構造は以下の通りです。 VBAファイル.xls 1_フォルダA  ∟1999_ファイルA.xls  ∟2000_ファイルA.xls  ∟2001_ファイルA.xls  ∟2002_ファイルA.xls  ∟2003_ファイルA.xls  ∟2004_ファイルA.xls  ∟2005_ファイルA.xls  ∟2006_ファイルA.xls  ∟2007_ファイルA.xls  ∟2008_ファイルA.xls  ∟2009_ファイルA.xls  ∟2010_ファイルA.xls  ∟2011_ファイルA.xls  ∟2012_ファイルA.xls 2_フォルダB  ∟1999_ファイルB.xls  ∟2000_ファイルB.xls  ∟2001_ファイルB.xls  ∟2002_ファイルB.xls  ∟2003_ファイルB.xls  ∟2004_ファイルB.xls  ∟2005_ファイルB.xls  ∟2006_ファイルB.xls  ∟2007_ファイルB.xls  ∟2008_ファイルB.xls  ∟2009_ファイルB.xls  ∟2010_ファイルB.xls  ∟2011_ファイルB.xls  ∟2012_ファイルB.xls 3_フォルダC  ∟ファイルC_結果.xls 「VBAファイル.xls」では添付の画像のような「ActiveXコントロール」を設定しました。 コンボボックスで西暦を選択すると、選択した年を中心年として、 前後1年を合わせて合計3年がラベルに表示されます。 その年のファイルのデータが「ファイルC_結果.xls」にコピーされるようにしたいです。 例えば画像のように「2007」を選択した場合、 ・「2006_ファイルA.xls」のC7~C25を「ファイルC_結果.xls」のD7~D25にコピー ・「2007_ファイルA.xls」のC7~C25を「ファイルC_結果.xls」のE7~E25にコピー ・「2008_ファイルA.xls」のC7~C25を「ファイルC_結果.xls」のF7~F25にコピー ・「2006_ファイルB.xls」のC6~C24を「ファイルC_結果.xls」のH7~H25にコピー ・「2007_ファイルB.xls」のC6~C24を「ファイルC_結果.xls」のI7~I25にコピー ・「2008_ファイルB.xls」のC6~C24を「ファイルC_結果.xls」のJ7~J25にコピー というようにしたいです。 「ファイルC_結果.xls」のD/E/F列はファイルAのデータで、 D列は前年、E列は当年、F列は翌年 H/I/J列はファイルBのデータで、 H列は前年、I列は当年、J列は翌年の値をコピーして貼り付けたいです。 また、可能であれば「ファイルC_結果.xls」は原本なので、 値をコピーする際にファイル名が変更できればよりよいです。 いろいろ書いてしまい、うまく伝わっているか不安なのですが 処理するデータが多くとても困っています。 お知恵のある方、どなたか助けていただけますと幸いです。 よろしくお願いいたします。

  • エクセルVBAで列幅設定

    A列の幅を、C~F列の幅(同一ではありません)に設定しようと思いました。 ところが Columns("A").ColumnWidth = Range("C1:F1").Width とすると、ColumnWidthとWidthの単位がまったく違うのでエラーになります。 同じ単位で設定するには Columns("A").ColumnWidth = Columns("C").ColumnWidth + Columns("D").ColumnWidth + Columns("E").ColumnWidth + Columns("F").ColumnWidth とするか、 Sub test02() Dim c As Range Dim x As Single For Each c In Range("C1:F1") x = x + c.ColumnWidth Next Columns("A").ColumnWidth = x End Sub などのように手の込んだことをするしか思いつきません。 もっと簡単な方法はないでしょうか?

  • エクセルVBAで読み取りパスワード回避

    エクセル2010です。 以下のコードで任意のフォルダ内のエクセルBOOKから所定のデータを取得できます。 しかし、指定フォルダ内に読み取りパスワードが設定されたものがあると、開くことができずに止まってしまいます。 読み取りパスワードが同一で、事前に分かっていればコードにPassword:="AAAABBBB" などと書き入れればいいと思うのですが、事前にはわかりませんし、パスワードもそれぞれ異なります。 そこで、開けなかった場合には、そのBOOKを飛ばしてすすみ、別シートに飛ばしたBOOK名を記録しておきたいのです。 (BOOK作成者にあとからパスワードを聞くため) しかし、残念ながらどのように書けばいいのか思いつきません。 ご指導いただければ幸いです。 Sub TEST001()   Dim wb(1) As Workbook   Dim ws(1) As Worksheet   Dim myFdr As String, fn As String   Dim i As Long   With Application.FileDialog(msoFileDialogFolderPicker) 'フォルダ指定     If .Show = True Then        myFdr = .SelectedItems(1)     Else       Exit Sub     End If   End With   Application.ScreenUpdating = False '画面更新を一時停止   Set wb(0) = ThisWorkbook 'このコピー先ブックをwb(0)とする。   Set ws(0) = wb(0).Sheets(1) 'wb(0)の1枚目のシートをws(0)とする。   fn = Dir(myFdr & "\*.xls*") 'フォルダ内のExcelブックを検索   Do Until fn = Empty '全て検索     Application.EnableEvents = False     Set wb(1) = Workbooks.Open(myFdr & "\" & fn, UpdateLinks:=False, ReadOnly:=True) 'そのブックを開きwb(1)とする。     Set ws(1) = wb(1).Worksheets(1)     i = i + 1     ws(0).Cells(i, "A").Value = ws(1).Range("B2") 'ws(0)に転記     ws(0).Cells(i, "B").Value = wb(1).Name     ws(0).Cells(i, "C").Value = ws(1).Name     wb(1).Close (False) '保存せず閉じる     Application.EnableEvents = True     fn = Dir 'フォルダ内の次のExcelブックを検索   Loop '繰り返す   Application.ScreenUpdating = True '画面更新停止を解除   MsgBox i & "個取得" End Sub

  • エクセルVBAで読み取りパスワード回避

    エクセル2010です。 以下のコードで任意のフォルダ内のエクセルBOOKから所定のデータを取得できます。 しかし、指定フォルダ内に読み取りパスワードが設定されたものがあると、開くことができずに止まってしまいます。 読み取りパスワードが同一で、事前に分かっていればコードにPassword:="AAAABBBB" などと書き入れればいいと思うのですが、事前にはわかりませんし、パスワードもそれぞれ異なります。 そこで、開けなかった場合には、そのBOOKを飛ばしてすすみ、別シートに飛ばしたBOOK名を記録しておきたいのです。 (BOOK作成者にあとからパスワードを聞くため) しかし、残念ながらどのように書けばいいのか思いつきません。 ご指導いただければ幸いです。 Sub TEST001()   Dim wb(1) As Workbook   Dim ws(1) As Worksheet   Dim myFdr As String, fn As String   Dim i As Long   With Application.FileDialog(msoFileDialogFolderPicker) 'フォルダ指定     If .Show = True Then        myFdr = .SelectedItems(1)     Else       Exit Sub     End If   End With   Application.ScreenUpdating = False '画面更新を一時停止   Set wb(0) = ThisWorkbook 'このコピー先ブックをwb(0)とする。   Set ws(0) = wb(0).Sheets(1) 'wb(0)の1枚目のシートをws(0)とする。   fn = Dir(myFdr & "\*.xls*") 'フォルダ内のExcelブックを検索   Do Until fn = Empty '全て検索     Application.EnableEvents = False     Set wb(1) = Workbooks.Open(myFdr & "\" & fn, UpdateLinks:=False, ReadOnly:=True) 'そのブックを開きwb(1)とする。     Set ws(1) = wb(1).Worksheets(1)     i = i + 1     ws(0).Cells(i, "A").Value = ws(1).Range("B2") 'ws(0)に転記     ws(0).Cells(i, "B").Value = wb(1).Name     ws(0).Cells(i, "C").Value = ws(1).Name     wb(1).Close (False) '保存せず閉じる     Application.EnableEvents = True     fn = Dir 'フォルダ内の次のExcelブックを検索   Loop '繰り返す   Application.ScreenUpdating = True '画面更新停止を解除   MsgBox i & "個取得" End Sub

  • エクセルVBAで読み取りパスワード回避

    エクセル2010です。 以下のコードで任意のフォルダ内のエクセルBOOKから所定のデータを取得できます。 しかし、指定フォルダ内に読み取りパスワードが設定されたものがあると、開くことができずに止まってしまいます。 読み取りパスワードが同一で、事前に分かっていればコードにPassword:="AAAABBBB" などと書き入れればいいと思うのですが、事前にはわかりませんし、パスワードもそれぞれ異なります。 そこで、開けなかった場合には、そのBOOKを飛ばしてすすみ、別シートに飛ばしたBOOK名を記録しておきたいのです。 (BOOK作成者にあとからパスワードを聞くため) しかし、残念ながらどのように書けばいいのか思いつきません。 ご指導いただければ幸いです。 Sub TEST001()   Dim wb(1) As Workbook   Dim ws(1) As Worksheet   Dim myFdr As String, fn As String   Dim i As Long   With Application.FileDialog(msoFileDialogFolderPicker) 'フォルダ指定     If .Show = True Then        myFdr = .SelectedItems(1)     Else       Exit Sub     End If   End With   Application.ScreenUpdating = False '画面更新を一時停止   Set wb(0) = ThisWorkbook 'このコピー先ブックをwb(0)とする。   Set ws(0) = wb(0).Sheets(1) 'wb(0)の1枚目のシートをws(0)とする。   fn = Dir(myFdr & "\*.xls*") 'フォルダ内のExcelブックを検索   Do Until fn = Empty '全て検索     Application.EnableEvents = False     Set wb(1) = Workbooks.Open(myFdr & "\" & fn, UpdateLinks:=False, ReadOnly:=True) 'そのブックを開きwb(1)とする。     Set ws(1) = wb(1).Worksheets(1)     i = i + 1     ws(0).Cells(i, "A").Value = ws(1).Range("B2") 'ws(0)に転記     ws(0).Cells(i, "B").Value = wb(1).Name     ws(0).Cells(i, "C").Value = ws(1).Name     wb(1).Close (False) '保存せず閉じる     Application.EnableEvents = True     fn = Dir 'フォルダ内の次のExcelブックを検索   Loop '繰り返す   Application.ScreenUpdating = True '画面更新停止を解除   MsgBox i & "個取得" End Sub

  • Excelブック保存前に個人情報を削除

    Excel VBA 2007を使用しています。 ActiveWorkbook.RemovePersonalInformation = True によって、ブック保存時に個人情報を保存しないようにできますが、 ユーザーインターフェースの操作の「ドキュメント検査」と同様に、ブック保存前に個人情報を削除するにはどうすれば良いでしょうか。

  • VBAでテキストファイル中の文字列を抽出したい

    説明が冗長になりそうですが・・・ たとえば「日別訪問動物」というフォルダがあるとします。 その中には、 20140206.txt 20140205.txt 20140204.txt ・・・ と、日別に名前がつけられたテキストファイルが複数入っています。 それぞれのテキストファイルは、以下のような内容が書き込まれています。  ○20140206.txtの中身  今日わが家を訪問してきた動物は次の通りです。  3匹・・・イヌ、カエル  2匹・・・カワウソ  1匹・・・ライオン、ゾウ、オオカミ  ○20140205.txtの中身  今日わが家を訪問してきた動物は次の通りです。  5匹・・・トラ  2匹・・・ネコ、イヌ  1匹・・・クマ  ○20140204.txtの中身  今日わが家を訪問してきた動物は次の通りです。  3匹・・・ネコ、ライオン  1匹・・・カバ このときに、”最新の日付で、ネコが訪れてきたときのネコの数”をエクセルVBAで抽出し、任意のセル(たとえばA1など)に貼りつけたいと考えています。 上記の例では、「2匹」を抽出したいと考えています(2月5日に訪れたネコ2匹)。 どのようにすればうまくいくでしょうか?

  • VBAでテキストファイル中の文字列を抽出したい

    説明が冗長になりそうですが・・・ たとえば「日別訪問動物」というフォルダがあるとします。 その中には、 20140206.txt 20140205.txt 20140204.txt ・・・ と、日別に名前がつけられたテキストファイルが複数入っています。 それぞれのテキストファイルは、以下のような内容が書き込まれています。  ○20140206.txtの中身  今日わが家を訪問してきた動物は次の通りです。  3匹・・・イヌ、カエル  2匹・・・カワウソ  1匹・・・ライオン、ゾウ、オオカミ  ○20140205.txtの中身  今日わが家を訪問してきた動物は次の通りです。  5匹・・・トラ  2匹・・・ネコ、イヌ  1匹・・・クマ  ○20140204.txtの中身  今日わが家を訪問してきた動物は次の通りです。  3匹・・・ネコ、ライオン  1匹・・・カバ このときに、”最新の日付で、ネコが訪れてきたときのネコの数”をエクセルVBAで抽出し、任意のセル(たとえばA1など)に貼りつけたいと考えています。 上記の例では、「2匹」を抽出したいと考えています(2月5日に訪れたネコ2匹)。 どのようにすればうまくいくでしょうか?

  • EXCEL VBAでのWord操作

    ExcelのVBAにて、Wordファイルに挿入されているExcel表を更新したいのですが、 どのように記述すればよりかわかりません。 具体的には以下のとおりとなります。 「在庫.xls」 のセル A1 「照合表.doc」に挿入されているExcel表には「在庫.xls」のセルA1を参照するように記述が 入っています。 「在庫.xls」にコマンドボタン「更新」を作成し、実行すると「照合表.doc」の値が更新されるように マクロを組みたいのですが、どなたか知恵を貸してください。

  • Excel VBA Window の設定

    質問させていただきます。 現在、ウィンドウを任意のサイズに固定したいと考えているのですが、方法が分かりません。 また、WorkBookのサイズでは無く Excel ファイルのサイズ変更です。 また、コードを用いて行う場合は要約程度でも構いませんので、どの部分がどの様な挙動をとるのかも 記載して頂きたいです。 よろしくお願いします。

    • 締切済み
    • noname#193651
    • Visual Basic
    • 回答数2
  • エクセルVBA ListBox選択を反映させる

    いろいろ試みたのですが、分からないので教えてください ・ユーザーフォームにListBox1、ListBox2があります ・やりたいこと ●ListBox1=ListBox2場合、A2にListBox1の値を入力 (ex)ListBox1がH8 (1996)、ListBox2がH8 (1996)の場合、A2に「H8」と入力 ●ListBox1がListBox2と1年違う場合、A2とA3にその間の期間を入力 (ex)ListBox1がH8 (1996)、ListBox2がH9 (1997)の場合、A2に「H8」、A3に「H9」と入力 ●ListBox1がListBox2と2年違う場合、A2とA4にその間の期間を入力 (ex)ListBox1がH8 (1996)、ListBox2がH10 (1998)の場合、A2に「H8」、A3に「H9」、A4に「H10」と入力 ・作成したもの1 Private Sub ListBox1_Change()     With ListBox2     .Clear     Select Case UserForm1.ListBox1.List(ListBox1.ListIndex)     Case "H8 (1996)"       .List = Array("H8 (1996)", "H9 (1997)", "H10 (1998)")     Case "H9 (1997)"       .List = Array("H9 (1997)", "H10 (1998)")     Case "H10 (1998)"       .List = Array("H10 (1998)")     End Select     .ListIndex = 0     End With End Sub ・作成したもの2 If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 End If If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) + 1 = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1987 End If If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) + 2 = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1987 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1986 End If ・困ったこと (1) ListBox1を選択した時、ListBox2の表示を切り替えられるようにしており、選択したように青になっていますが、実際はListBox2を選択していないようです ListBox1をH8にクリックしてから、ListBox2をH9やH10を選択して、再度H8を選択しなおさなければ、エラーになってしまいます (2)ListBox1とListBox2が1年違い、2年違いの場合、うまくいかずセルに入力されない もし分かる方がいらっしゃいましたら、教えてください よろしくお願いします

  • エクセルVBA ListBox選択を反映させる

    いろいろ試みたのですが、分からないので教えてください ・ユーザーフォームにListBox1、ListBox2があります ・やりたいこと ●ListBox1=ListBox2場合、A2にListBox1の値を入力 (ex)ListBox1がH8 (1996)、ListBox2がH8 (1996)の場合、A2に「H8」と入力 ●ListBox1がListBox2と1年違う場合、A2とA3にその間の期間を入力 (ex)ListBox1がH8 (1996)、ListBox2がH9 (1997)の場合、A2に「H8」、A3に「H9」と入力 ●ListBox1がListBox2と2年違う場合、A2とA4にその間の期間を入力 (ex)ListBox1がH8 (1996)、ListBox2がH10 (1998)の場合、A2に「H8」、A3に「H9」、A4に「H10」と入力 ・作成したもの1 Private Sub ListBox1_Change()     With ListBox2     .Clear     Select Case UserForm1.ListBox1.List(ListBox1.ListIndex)     Case "H8 (1996)"       .List = Array("H8 (1996)", "H9 (1997)", "H10 (1998)")     Case "H9 (1997)"       .List = Array("H9 (1997)", "H10 (1998)")     Case "H10 (1998)"       .List = Array("H10 (1998)")     End Select     .ListIndex = 0     End With End Sub ・作成したもの2 If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 End If If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) + 1 = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1987 End If If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) + 2 = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1987 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1986 End If ・困ったこと (1) ListBox1を選択した時、ListBox2の表示を切り替えられるようにしており、選択したように青になっていますが、実際はListBox2を選択していないようです ListBox1をH8にクリックしてから、ListBox2をH9やH10を選択して、再度H8を選択しなおさなければ、エラーになってしまいます (2)ListBox1とListBox2が1年違い、2年違いの場合、うまくいかずセルに入力されない もし分かる方がいらっしゃいましたら、教えてください よろしくお願いします

  • エクセルVBA ListBox選択を反映させる

    いろいろ試みたのですが、分からないので教えてください ・ユーザーフォームにListBox1、ListBox2があります ・やりたいこと ●ListBox1=ListBox2場合、A2にListBox1の値を入力 (ex)ListBox1がH8 (1996)、ListBox2がH8 (1996)の場合、A2に「H8」と入力 ●ListBox1がListBox2と1年違う場合、A2とA3にその間の期間を入力 (ex)ListBox1がH8 (1996)、ListBox2がH9 (1997)の場合、A2に「H8」、A3に「H9」と入力 ●ListBox1がListBox2と2年違う場合、A2とA4にその間の期間を入力 (ex)ListBox1がH8 (1996)、ListBox2がH10 (1998)の場合、A2に「H8」、A3に「H9」、A4に「H10」と入力 ・作成したもの1 Private Sub ListBox1_Change()     With ListBox2     .Clear     Select Case UserForm1.ListBox1.List(ListBox1.ListIndex)     Case "H8 (1996)"       .List = Array("H8 (1996)", "H9 (1997)", "H10 (1998)")     Case "H9 (1997)"       .List = Array("H9 (1997)", "H10 (1998)")     Case "H10 (1998)"       .List = Array("H10 (1998)")     End Select     .ListIndex = 0     End With End Sub ・作成したもの2 If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 End If If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) + 1 = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1987 End If If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) + 2 = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1987 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1986 End If ・困ったこと (1) ListBox1を選択した時、ListBox2の表示を切り替えられるようにしており、選択したように青になっていますが、実際はListBox2を選択していないようです ListBox1をH8にクリックしてから、ListBox2をH9やH10を選択して、再度H8を選択しなおさなければ、エラーになってしまいます (2)ListBox1とListBox2が1年違い、2年違いの場合、うまくいかずセルに入力されない もし分かる方がいらっしゃいましたら、教えてください よろしくお願いします

  • VBA Evaluate関数 型が一致しません

    Excel2003 VBAのEvaluateで以下の数式を実行すると エラー「型が一致しません」となってしまいます。 類似の質問を検索していろいろ参考にしてみたのですが 解決できなかったので質問させてください。 Sub test() Dim aa, bb, cc As String Dim y As Byte y = 1 With Sheets("Sheet1") aa = ".Cells(y, 1) > 0" bb = Left(aa, InStr(aa, "y") - 1) cc = Mid(aa, InStr(aa, "y") + 1) If Evaluate(bb & y & cc) Then ←ここでエラーになります。 y = 2 End If End With End Sub .Cells(1, 1)には10が入力されています。 宜しくお願い致します。

  • xls:CopyFromRecordset罫線描写

    こんにちは。 お世話になります。 エクセルからアクセスを読み込みに行き、取得結果をエクセル内に表示しています。 ※アクセスを開いてエクセルに出力するのではないです。 このとき、スタートセルを指定して Range("B12").CopyFromRecordset adoRs という感じで読み取ったデータを出力していますが、 この出力前に明細にしている部分を消しています。 Range("B12:AI1000").Clear '前のデータクリア ※ClearContentsではダメな理由があります。 このとき、CopyFromRecordset にて出力が行われたセルのみ、 セルのまわりを四角く罫線で囲むということをしたいです。 明細っぽくしたいので。 罫線はこのように引くと思うのですが Range("A1:C3").Borders.LineStyle = xlContinuous このA1:C3の部分を今回B12から始まり、列はAIまで、 行数は条件により変動するため固定ではない状態で、 どのようにすれば取得できるのかが知りたいです。 よろしくお願いいたします。 office2010、windows7です。

  • xls:CopyFromRecordset罫線描写

    こんにちは。 お世話になります。 エクセルからアクセスを読み込みに行き、取得結果をエクセル内に表示しています。 ※アクセスを開いてエクセルに出力するのではないです。 このとき、スタートセルを指定して Range("B12").CopyFromRecordset adoRs という感じで読み取ったデータを出力していますが、 この出力前に明細にしている部分を消しています。 Range("B12:AI1000").Clear '前のデータクリア ※ClearContentsではダメな理由があります。 このとき、CopyFromRecordset にて出力が行われたセルのみ、 セルのまわりを四角く罫線で囲むということをしたいです。 明細っぽくしたいので。 罫線はこのように引くと思うのですが Range("A1:C3").Borders.LineStyle = xlContinuous このA1:C3の部分を今回B12から始まり、列はAIまで、 行数は条件により変動するため固定ではない状態で、 どのようにすれば取得できるのかが知りたいです。 よろしくお願いいたします。 office2010、windows7です。

  • エクセルVBA ListBox選択を反映させる

    いろいろ試みたのですが、分からないので教えてください ・ユーザーフォームにListBox1、ListBox2があります ・やりたいこと ●ListBox1=ListBox2場合、A2にListBox1の値を入力 (ex)ListBox1がH8 (1996)、ListBox2がH8 (1996)の場合、A2に「H8」と入力 ●ListBox1がListBox2と1年違う場合、A2とA3にその間の期間を入力 (ex)ListBox1がH8 (1996)、ListBox2がH9 (1997)の場合、A2に「H8」、A3に「H9」と入力 ●ListBox1がListBox2と2年違う場合、A2とA4にその間の期間を入力 (ex)ListBox1がH8 (1996)、ListBox2がH10 (1998)の場合、A2に「H8」、A3に「H9」、A4に「H10」と入力 ・作成したもの1 Private Sub ListBox1_Change()     With ListBox2     .Clear     Select Case UserForm1.ListBox1.List(ListBox1.ListIndex)     Case "H8 (1996)"       .List = Array("H8 (1996)", "H9 (1997)", "H10 (1998)")     Case "H9 (1997)"       .List = Array("H9 (1997)", "H10 (1998)")     Case "H10 (1998)"       .List = Array("H10 (1998)")     End Select     .ListIndex = 0     End With End Sub ・作成したもの2 If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 End If If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) + 1 = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1987 End If If Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) + 2 = Mid(ListBox2, Application.Find("(", ListBox2) + 1, 4) Then sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1988 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1987 sheets1.Cells(Rows.Count, 1).End(xlUp).Offset(1) = "H" & Mid(ListBox1, Application.Find("(", ListBox1) + 1, 4) - 1986 End If ・困ったこと (1) ListBox1を選択した時、ListBox2の表示を切り替えられるようにしており、選択したように青になっていますが、実際はListBox2を選択していないようです ListBox1をH8にクリックしてから、ListBox2をH9やH10を選択して、再度H8を選択しなおさなければ、エラーになってしまいます (2)ListBox1とListBox2が1年違い、2年違いの場合、うまくいかずセルに入力されない もし分かる方がいらっしゃいましたら、教えてください よろしくお願いします

  • 配列を初期化する時ってどうすればいいですか?

    Dim test() As String や Dim test As Variant で、宣言した配列を初期化する時ってどうすればいいですか? test="" test=Null test= Empty test= = Nothing は、エラーになります。

  • xls:CopyFromRecordset罫線描写

    こんにちは。 お世話になります。 エクセルからアクセスを読み込みに行き、取得結果をエクセル内に表示しています。 ※アクセスを開いてエクセルに出力するのではないです。 このとき、スタートセルを指定して Range("B12").CopyFromRecordset adoRs という感じで読み取ったデータを出力していますが、 この出力前に明細にしている部分を消しています。 Range("B12:AI1000").Clear '前のデータクリア ※ClearContentsではダメな理由があります。 このとき、CopyFromRecordset にて出力が行われたセルのみ、 セルのまわりを四角く罫線で囲むということをしたいです。 明細っぽくしたいので。 罫線はこのように引くと思うのですが Range("A1:C3").Borders.LineStyle = xlContinuous このA1:C3の部分を今回B12から始まり、列はAIまで、 行数は条件により変動するため固定ではない状態で、 どのようにすれば取得できるのかが知りたいです。 よろしくお願いいたします。 office2010、windows7です。

  • xls:CopyFromRecordset罫線描写

    こんにちは。 お世話になります。 エクセルからアクセスを読み込みに行き、取得結果をエクセル内に表示しています。 ※アクセスを開いてエクセルに出力するのではないです。 このとき、スタートセルを指定して Range("B12").CopyFromRecordset adoRs という感じで読み取ったデータを出力していますが、 この出力前に明細にしている部分を消しています。 Range("B12:AI1000").Clear '前のデータクリア ※ClearContentsではダメな理由があります。 このとき、CopyFromRecordset にて出力が行われたセルのみ、 セルのまわりを四角く罫線で囲むということをしたいです。 明細っぽくしたいので。 罫線はこのように引くと思うのですが Range("A1:C3").Borders.LineStyle = xlContinuous このA1:C3の部分を今回B12から始まり、列はAIまで、 行数は条件により変動するため固定ではない状態で、 どのようにすれば取得できるのかが知りたいです。 よろしくお願いいたします。 office2010、windows7です。