Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


98 / 3841 ページ ←次へ | 前へ→

【80523】Re:csvファイルの読み込みに変数を指定し...
回答  γ  - 19/2/26(火) 23:05 -

引用なし
パスワード
   こうしたところに投稿するときは、手打ちではなく、
「VBE画面のコードをそのままコピーペイスト」すべきです。

これまでの指摘はあなたの投稿上のミスについての指摘です。
というのはいずれも構文エラーになるはずのまちがいです。
無駄な労力を他人に使わせているのです。

パス名が無効です、
というエラーメッセージは
open varfilename for input as #intfree
の箇所で発生するはずで、
varfilenameが""になっているのでしょう。

つまり、
varFileName = dir(sourcepath & "ログ-12345678.csv")は
dir("P:\aaa\ログ-12345678.csvログ-12345678.csv")
としていることと同じで、そんなファイルはないから、
varFileNameは ""となっているのでしょう。

エラー回避のためには、まずは
sourcepath = "P:\aaa\" とすればよいのでは?

ただし、本当の質問は、日付部分を自動作成したいのではないかと
思うが、まずはここまで。

繰り返しますが、「コードはコピーペイストすべし」を肝に銘じて下さい。
・ツリー全体表示

【80522】Re:csvファイルの読み込みに変数を指定し...
発言  zzz  - 19/2/26(火) 20:18 -

引用なし
パスワード
   そっちは見てなかった。
恥ずかしい。
・ツリー全体表示

【80521】Re:csvファイルの読み込みに変数を指定し...
発言  γ  - 19/2/26(火) 20:05 -

引用なし
パスワード
   文字列は"と"で囲まないとダメということのほか、
Dim と = の取り合わせも 構文エラーになるはずですがね。
・ツリー全体表示

【80520】Re:csvファイルの読み込みに変数を指定し...
発言  zzz  - 19/2/26(火) 20:00 -

引用なし
パスワード
   そこじゃないでしょ。

"  "
・ツリー全体表示

【80519】Re:csvファイルの読み込みに変数を指定し...
回答  amatsuno  - 19/2/26(火) 16:52 -

引用なし
パスワード
   ▼ピンク さん:
>▼amatsuno さん:
>>din sourcepath = string
>> sourcepath = P:\aaa\ログ-12345678.csv
>
>Dim sourcepath = string
>sourcepath = "P:\aaa\ログ-12345678.csv"


すいません。
記載が間違えていました
dimとしても結果が変わりません。
・ツリー全体表示

【80518】Re:フォントの反映【エクセルからアウト...
お礼  aymie  - 19/2/26(火) 15:16 -

引用なし
パスワード
   ▼マナ さん:
>▼aymie さん:
>
>アウトルックのことは全くわかりませんので
>検索してみました。
>
>ht tps://www.ka-net.org/blog/?p=8550

マナさん、
ご回答頂きありがとうございます!Word経由で装飾するという方法があるのですね。エクセル→ワード→アウトルックという形でメール作成ができないか工夫してみます。
自分では探せなかったページなので、とても参考になりました、ありがとうございました。
・ツリー全体表示

【80517】Re:フォルダ内の複数のExcelファイルを1...
発言  マナ  - 19/2/25(月) 17:47 -

引用なし
パスワード
   ▼くりしち さん:

回答ではありません。

↓の xyzさんと同じ方でしょうか?
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=80506;id=excel
・ツリー全体表示

【80516】Re:csvファイルの読み込みに変数を指定し...
発言  ピンク  - 19/2/25(月) 15:14 -

引用なし
パスワード
   ▼amatsuno さん:
>din sourcepath = string
> sourcepath = P:\aaa\ログ-12345678.csv

Dim sourcepath = string
sourcepath = "P:\aaa\ログ-12345678.csv"
・ツリー全体表示

【80515】csvファイルの読み込みに変数を指定したい
質問  amatsuno  - 19/2/25(月) 14:08 -

引用なし
パスワード
   csvファイルを読み込むマクロで、
ファイル名に変数を指定して読み込みをしたいと考えております


読み込むcsvのファイル名は「ログ-(日付).csv」と「ライセンス-(日付).csv」
になり、(日付)が毎日変更される値になります。

din sourcepath = string
sourcepath = P:\aaa\ログ-12345678.csv


dim varFileName as string
dim varFileName2 as string

  
   'マスタ情報のcsvファイルを選択する
  varFileName = dir(sourcepath & "ログ-12345678.csv")


  'グループ情報のcsvファイルを選択する
  varFileName2 = dir(sourcepath & "ライセンス-12345678.csv")

  intFree = FreeFile '空番号を取得
  intFree2 = FreeFile '空番号を取得

'csvファイルを開く
open varfilename for input as #intfree

  'csvファイルを開く
open varfilename2 for input as #intfree2

  
上記のように記載したのですが、
「パス名が無効です」表示されます
(パス自体は存在します)


何か指定が間違っているのでしょうか?
お分かりになられる方、
よろしくお願いいたします
・ツリー全体表示

【80514】フォルダ内の複数のExcelファイルを1つ...
質問  くりしち  - 19/2/25(月) 7:25 -

引用なし
パスワード
   マクロ素人です。
申し訳ありませんが、教えてください。
題名のとおり、集計表を以下の式で作成してみました。

'
Option Explicit
'
Sub Macro1()
'
Dim O As Worksheet
Dim Path As String
Dim FileName As String
Dim IRange As String
Dim RowOut As Long
Dim RowAdd As Long
'
Set O = ThisWorkbook.Sheets("出力")
RowOut = InStrRev([B2], "\")
Path = Left([B2], RowOut - 1)
FileName = Dir([B2])
IRange = [B3]
RowAdd = Range(IRange).Rows.Count
O.Cells.ClearContents
RowOut = 1
'
While FileName > ""
Workbooks.Open Path & "\" & FileName, ReadOnly:=True
Range(IRange).Copy
O.Cells(RowOut, "A").PasteSpecial xlPasteValues
RowOut = RowOut + RowAdd
ActiveWorkbook.Close False
FileName = Dir
Wend
End Sub

上記式の、同マクロ内で出力ブックの、抽出の列数を増やしてみたいと考え、同じ式をコピー(wendの下から、同式のset O以下が同文で、IRange = [B3]を[C3]と変更、O.Cells(RowOut, "A")をO.Cells(RowOut, "B")と変更)し、試してみましたが、エラーが出てしまいました。
同じマクロ内で式を連結させて、出力ブックの抽出列数を増やすことは可能でしょうか?

例:出力ブックB3の範囲は(K13:AI14)となっていますが、C3の範囲は(A2:C13)、D3の範囲は(D2:G14)と、出力ブックの抽出列数を増やしていきたいです。。
・ツリー全体表示

【80513】Re:EXCEL フォルダ内のファイルを結合す...
お礼  xyz  - 19/2/25(月) 6:57 -

引用なし
パスワード
   ▼マナ さん:
>▼xyz さん:
>^
>>Range(K13:AI13).Copy
>>としたところ区切り範囲のエラーが出てしまい、K13:AI13とすると、rangeメソッドのエラーが出てしまいます。
>
>Rangeでのセルの指定方法
>ht tps://excel-ubara.com/excelvba1/EXCELVBA309.html

抽出できました!
お手数おかけしました。本当にありがとうございます!
・ツリー全体表示

【80512】Re:シート名と同じ文字列のセル行位置を...
発言  γ  - 19/2/24(日) 8:51 -

引用なし
パスワード
   すでに適切なコメントをいただいています。
遅ればせながら追加コメントをします。

>MATCH関数に対応するVBの関数は何でしょうか?
そういうVBの関数はありません。

VBAの中でMatch関数を使えるようにしたものが、
(Application.)WorksheetFunction.Matchです。
Applicationは省略することが多いですね。

下記を参照。
ht tps://www.moug.net/tech/exvba/0100035.html
↑スペースを詰める。

--------------------------------------
最初の質問への回答の補足。

> k = Worksheet.Match(sheetName, activesheet.Range("Q8:Q14"), False, 0)
Worksheet.Matchのところですが、
(1)Worksheetオブジェクトのつもりだとして、
 単にWorksheetと書くことは無いと思って頂いて結構です。
 Worksheets("Sheet1")
 Worksheets(1)
 などと書くことが多いです。

(2)重要なのは、Worksheetオブジェクトのつもりだとして、
  Worksheetオブジェクトは、Matchというメソッド、プロパティは持ちません。
  オブジェクト - メソッド
  オブジェクト - プロパティ の組み合わせは決まっており、
  自分で勝手に追加することはできません。
  そういう正当な組み合わせであるかどうかに気をつけることが大切です。

ヘルプで調べたり、最初は例文を一部を変えて使ってみるという経験を
積み重ねることが必要でしょう。

---------------------------------------
また、
Option Explicit
をモジュールの一行目に挿入するようにして下さい。
そうすれば、今回のような未宣言の変数には警告が出て、
しかも場所を特定してくれますから、原因が直ぐに判明します。

今回の例で言えば、Worksheetがハイライトされ、
「変数が定義されていません」とエラーになるはずです。
Excel君は、ユーザーが使った変数と見なし、
その宣言がされていないと指摘しています。
ミスの早期発見につながります。

なお、
ツール − オプション − 編集 で
「変数の宣言を強制する」にチェックを入れておけば、
モジュールを作成した時点で、Option Explicitが自動的に挿入されるので、
手間が省けます。
一度だけチェックを入れておけば、以後、気にする必要はありません。
これは必ず実行してください。参考程度の聞いて貰っては困ります。

ht tp://officetanaka.net/excel/vba/beginner/06.htm
を参照。
・ツリー全体表示

【80511】Re:EXCEL フォルダ内のファイルを結合す...
発言  マナ  - 19/2/23(土) 21:51 -

引用なし
パスワード
   ▼xyz さん:
^
>Range(K13:AI13).Copy
>としたところ区切り範囲のエラーが出てしまい、K13:AI13とすると、rangeメソッドのエラーが出てしまいます。

Rangeでのセルの指定方法
ht tps://excel-ubara.com/excelvba1/EXCELVBA309.html
・ツリー全体表示

【80510】Re:EXCEL フォルダ内のファイルを結合す...
発言  xyz  - 19/2/23(土) 21:34 -

引用なし
パスワード
   ▼マナ さん:
>▼xyz さん:
>
>>左様です。単純にそこに範囲を指定すればよろしいのでしょうか?
>
>はい。それでもよいです。
>試していないのですか?
>
> 素人で申し訳ありません。
Range(Cells(read_row, 1), Cells(input_end_row, read_col)).Copyを
Range(K13:AI13).Copy
としたところ区切り範囲のエラーが出てしまい、K13:AI13とすると、rangeメソッドのエラーが出てしまいます。
・ツリー全体表示

【80509】Re:EXCEL フォルダ内のファイルを結合す...
発言  マナ  - 19/2/23(土) 18:51 -

引用なし
パスワード
   ▼xyz さん:

>左様です。単純にそこに範囲を指定すればよろしいのでしょうか?

はい。それでもよいです。
試していないのですか?

 
・ツリー全体表示

【80508】Re:EXCEL フォルダ内のファイルを結合す...
発言  xyz  - 19/2/23(土) 15:19 -

引用なし
パスワード
   ▼マナ さん:
>▼xyz さん:
>
>>  Range(Cells(read_row, 1), Cells(input_end_row, read_col)).Copy
>
>↑ここで、K13:AI14 をコピーしたいということでしょうか?

左様です。単純にそこに範囲を指定すればよろしいのでしょうか?
・ツリー全体表示

【80507】Re:EXCEL フォルダ内のファイルを結合す...
発言  マナ  - 19/2/23(土) 12:21 -

引用なし
パスワード
   ▼xyz さん:

>  Range(Cells(read_row, 1), Cells(input_end_row, read_col)).Copy

↑ここで、K13:AI14 をコピーしたいということでしょうか?
・ツリー全体表示

【80506】EXCEL フォルダ内のファイルを結合する方...
質問  xyz  - 19/2/23(土) 11:37 -

引用なし
パスワード
   マクロの事で1件ご教示ください。

Sub フォルダ内のファイルを出力()
 read_folder = Range("B2")
 read_row = Range("C2")
 read_col = Range("D2")
 read_file = Dir(read_folder & "\")
 Do While read_file <> ""
  output_end_row = Sheets("出力").Range("A65536").End(xlUp).Row
  Workbooks.Open read_folder & "\" & read_file
  input_end_row = Range("A65536").End(xlUp).Row
  Range(Cells(read_row, 1), Cells(input_end_row, read_col)).Copy
  ThisWorkbook.Sheets("出力").Activate
  Range("A" & output_end_row + 1).Select
  ActiveSheet.Paste
  Workbooks(read_file).Close
  read_file = Dir()
 Loop
End Sub

あるサイトを参考に、フォルダ内の複数のExcelファイルから、1つの集計表にデータを抽出したいと考え、上記のモジュールでマクロを作ってみました。
上記の式では、集計表の出力表に「読み込み始める行」と「読み込む列数」で関数を組んでると思われますが、
例えば、「13行目から14行目」と「K列目からAI列目」のみを読み込むようにする方法はありますでしょうか?

読み込む行と列の範囲を指定して、特定の項目だけ読み込みしたいのですが、どうしてもできませんでした。
よろしくお願いいたします。
・ツリー全体表示

【80505】Re:シート名と同じ文字列のセル行位置を...
発言  マナ  - 19/2/22(金) 23:48 -

引用なし
パスワード
   ▼狛ちゃん さん:

>引数は間違いないと思います。

Matchの部分にカーソルをおき、F1キーを押してみてください。
わたしのヘルプでは、引数は3個です。
・ツリー全体表示

【80504】Re:シート名と同じ文字列のセル行位置を...
質問  狛ちゃん E-MAIL  - 19/2/22(金) 23:27 -

引用なし
パスワード
   ▼γ さん:
>再度書きます。
>>引数の数もそれでよいのか確認してください。

引数は間違いないと思います。
MATCH関数に対応するVBの関数は何でしょうか?
教えて頂ければ幸いです。
・ツリー全体表示

98 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free