Excelのマクロについて2つ教えてください。
<1>
ボタンを押したら特定のセルに入力した値がcsvファイルの末尾に1行追記されるマクロを作っています。
csvファイルの一番最後の文字が改行コードでないと直前の行に続けて記入されてしまうのですが、これをチェックする場合
・一度読み取りモードでcsvファイルを開く
・ファイルの最終行までよみこむ
・最後の文字を確認する
・ファイルを閉じる
・csvファイルを追記モードで開く
・最後が改行コードじゃなかった場合、改行コードを追記する
・入力値を追記する
・ファイルを閉じる
という手順しかないのでしょうか?
もっとスマートな方法、理想的な方法はありますか?
FileSystemObjectにもTextStreamにもファイルの最後の文字を取得するなんて都合のいい関数は無いようでした。
<2>
複数のExcelファイルの差分を表示させるマクロを作る場合、使用者に分かりやすいのはどういった方法でしょうか。最新ファイルが他のファイルの内容とどう違うのかを分かりやすくさせたいです。
各Excelファイルのファイル名は「固定文字列_日付_時間」、シート数は1シート。
内容は列数、行数共に増減する可能性のある表です。
現時点では
・マクロブックと同階層にある当日日付のExcelファイルをDir関数で取得
・マクロブックに各Excelファイルをシート別にCopyしてフィルタを解除
・コピーしたシート名をコピー元ファイル名の時間にする
・最も列数のあるシート、行数のあるシートから比較範囲を決定
・最も新しい時間のシートを基準に1セルずつ他のシートと比較
・値が同じ場合は最新シートの該当セルを白くぬる
・値が違う場合は最新シートの該当セルを赤くぬり、対するシート名のコメントを付与
で考えています。
もっとスマートな方法、理想的な方法はありますか?
Excelのバージョンは2010です。
他に必要な情報があれば聞いてください。
宜しくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/09 11:06 編集