jcctairaのプロフィール

@jcctaira jcctaira
ありがとう数208
質問数0
回答数261
ベストアンサー数
119
ベストアンサー率
58%
お礼率
0%

EXCELのVBAが得意です。 良ければEXCEL2010のホームページもご覧下さい。 http://excel2010.life.coocan.jp/ 下記はEXCEL2007のページです。 http://excel.life.coocan.jp/

  • VB初心者です

    エクセルVB初心者です。 ウェブサイトから情報を取ろうと思いました。 <dt class="market zsg-fineprint"> <!-- Market Text & tooltip --> <!-- Non-Market Text & Tooltip --> Market <sup>&reg;</sup>: $1.18M</dt> <dt class="market zsg-fineprint"> から"1.18M"を取り込んで現在のセルから右に6個目のセルにコピペしようと思い、次のようなSubを作りましたが、うまく行きません。 Sub getMarket(objIE As Object) Dim MarketPosition As Integer Dim DollarPosition As Integer MarketPosition = InStr(1, objIE.Document, "Market") DollarPosition = InStr(marketPosition, objIE.Document, "$") ActiveCell.Offset(0, 6) = Mid(objIE.Document, DollarPosition + 1, 4) End Sub うまく動作させるためにはどうしたらよいでしょうか?

  • シートを選択したい vba

    自身のファイルを読み取り専用で新たに立ち上げて、シートを選択したいのですが Private Sub cmd_読み取り専用で開く_Click() Dim xlApp As Object Dim xlBook As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.FullName) xlApp.Visible = True xlApp.xlBook.Sheets("メイン").Select Set xlApp = Nothing Set xlBook = Nothing End Sub だと xlApp.xlBook.Sheets("メイン").Selectでエラーになります。 文法が間違ってると思うのですが、修正案をご教授ください。

  • 親フォルダを取得したい

    Sub test1() Dim mystr As String mystr = ActiveWorkbook.Path End Sub これだと、現在のアクティブブックのファイル名以外のパスが取得できるのですが、 mystr = ActiveWorkbook.Parent.Path にすると、なぜか C:\Program Files (x86)\Microsoft Office\Office14 が返ります。 ActiveWorkbook.Path の返り値が C:\新しいフォルダー だとしたら、 C: のみが取得されるコードが知りたいのですが、 ActiveWorkbook.Parent.Path ではダメなようなので、正しいコードを教えてください。

  • EXCEL Spirit関数 繰り返し処理

    EXCEL VBAでテキストファイルを読み込み、Spirit関数にて項目内容を書き出しています。 下記のコードの日付部分は1日~31日まで繰り返しになります。 Dim maxRow As Integer Dim maxCol As Integer Dim i As Long Dim mytxtfile As String, myStr As String Dim myRange As Range Dim mySp() As String Dim sh1 As Worksheet On Error GoTo myError mytxtfile = "D:\明細.TXT" Set sh1 = Worksheets("元データ") Set myRange = sh1.Range("A1") sh1.Cells.Clear Open mytxtfile For Input As #1 Do Until EOF(1) Line Input #1, myStr myRange.Offset(i, 0).Value = myStr myStr = Replace(myStr, """", "") mySp = Split(myStr, ",") myRange.Offset(i, 1).Value = mySp(0) '卸名 myRange.Offset(i, 2).Value = mySp(1) 'コード myRange.Offset(i, 3).Value = mySp(2) 'フラグ myRange.Offset(i, 4).Value = mySp(6) '納品先 myRange.Offset(i, 5).Value = mySp(7) '店舗 myRange.Offset(i, 6).Value = mySp(23) '日付 ---------ここから myRange.Offset(i, 7).Value = mySp(26) '1日_金額A myRange.Offset(i, 8).Value = mySp(27) '1日_金額B myRange.Offset(i, 9).Value = mySp(34) '1日_金額C --------ここまでが 1日分です。これが31日まで続きます。 i = i + 1 Loop Close #1 '31日までのデータが無い場合のエラーを無視する(データが存在する日まで書き出す) myError: Resume Next sh1.Range("A:A").Delete 'txt取込作業列を削除 End Sub カンマ区切りの位置は、15ずつ増えますので 繰り返し処理したいのですが、うまくいきません。 最初は、金額A だけの書き出しだったため、 1行ずつ書いていたのですが、金額B、Cの列も必要になりました。 for next で すっきりした書き方を教えていただけないでしょうか? 宜しくお願い致します。

  • ExcelVBA変数等でのファイルのOpen方法

    ExcelVBAで、変数でのファイルのOpen方法を教えてください。 以下のフォルダ構造とします。 '////////////////////////////////////////////////////// マクロファイル.xls 1フォルダA  ∟1999ファイルA.xls  ∟2000ファイルA.xls  ∟2001ファイルA.xls  ∟2002ファイルA.xls  ∟2003ファイルA.xls  ∟2004ファイルA.xls ・・・ 2フォルダB  ∟1999ファイルB.xls  ∟2000ファイルB.xls  ∟2001ファイルB.xls  ∟2002ファイルB.xls  ∟2003ファイルB.xls  ∟2004ファイルB.xls ・・・ 3フォルダC  ∟結果ファイルC.xls '////////////////////////////////////////////////////// マクロファイル.xlsのシートにコンボボックスとボタンを配置します。 コンボボックスで【2001】を選択した場合は、 前後1年…合わせて合計3年分のファイルの「A5~A25」の値が、 「結果ファイルC.xls」にコピーされるようにしたいのです。 コピー内容や範囲が多く1つのプロシージャーに収まり切りませんでした。 そこで「結果ファイルC.xls」ファイルを1つめのプロシージャで開き、 2つめのプロシージャで残りの処理を実行しようとしたのですが、 変数、コンボボックスの値でのファイルを開く方法がわからず困っており、 どなたかお知恵をお貸し下さい。 以下のようなコードを書いてみましたがエラーとなりました。 '////////////////////////////////////////////////////// Dim vTgYear As Variant Dim myFLName1 As String, sWbkSubName1 As String Dim myFLName2 As String, sWbkSubName2 As String, SubName As String, vTgYear = ComboBox1.Value For i = -1 To 1 sWbkSubName1 = "3_フォルダC\結果ファイルC.xls" myFLName1 = ThisWorkbook.Path & sWbkSubName1 Workbooks.Open Filename:=myFLName1 SubName = "vTgYear + i & _ファイルA.xls" sWbkSubName2 = "1_フォルダA & SubName" myFLName2 = ThisWorkbook.Path & sWbkSubName1 Workbooks.Open Filename:=myFLName2 (実行コード中略) Next i '////////////////////////////////////////////////////// 今回はファイルの開き方だけなので、実行コードを省略させていただきました。 初歩的な質問かと思いますが、何卒お力をお貸しいただけますと幸いです。 よろしくお願い致します。