[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『多くの列がある表で、毎回不要な列を非表示にしたい』(あらじぃ)
多くの列がある表で、毎回不要な列を非表示にする作業が手間です。
業務では毎回新規にそのようなCSVをダウンロードして毎回同じ列を非表示にして参照しています。(100列中、参照するのは30列位、決まった70列を非表示)
下記のサイトを参考に、「ユーザー設定のビュー」を作ろうとしたのですが、
ここでできたビューは、そのシートに保存されるとのこと。
https://forest.watch.impress.co.jp/docs/serial/exceltips/1242761.html
でも、私の業務では、毎回毎回業務サーバーから新規のファイルとしてCSVがダウンロードされるので、この「ユーザー設定のビュー」を毎回作るのはかえって手間です。
毎回ダウンロードされるファイルは、行数はダウンロードの機会ごとに増減しますが、列の数も順番も、非表示にしたい列番号もまったく同じです。
ダウンロード直後にボタンを押すか、Excel本体に保存された何かを起動して、既定の非表示を実現できないものでしょうか?
< 使用 Excel:Excel2019、使用 OS:Windows10 >
不要な列を非表示にした状態のExcelを作っておき 一旦開いたCSVを、シートごと作っておいたExcelに 値貼り付けしてみてはどうでしょう? (コナミ) 2023/06/03(土) 08:30:27
あ、CSVだから普通に貼り付けでもいいのか。 (コナミ) 2023/06/03(土) 08:31:48
【参考】 https://vbabeginner.net/paste-csv-file-to-sheet/
ちょっと複雑なコードが記録されるので戸惑うかもしれませんが、【マクロの記録】で得られたコードを改造していけば目的は達成できると思います。
■2
ここでいう話でもないですが、[[20230425210708]]は解決したのでしょうか?
同時進行するなとは言わないですが、ほったらかしにして新しい質問されると、いい加減なことするなぁという印象になってしまいます。
(もこな2) 2023/06/03(土) 09:19:28
■2 そうですね。なんかほったらかしと思われてもしかたがないですね。クローズをしていただきたく、その旨書き込んでおきました。失礼しました
(あらじぃ) 2023/06/03(土) 10:23:58
多分勘違いしてるとおもいます。
私が言っているのは↓のようなことです。
Sub 研究用() Dim ふぁいるぱす As String ふぁいるぱす = "C:\Work\hogehoge.csv"
With ThisWorkbook.Worksheets("取込用") .Rows("2:" & .Rows.Count).Clear With .QueryTables.Add(Connection:="TEXT;" & ふぁいるぱす, Destination:=.Range("A2")) .TextFileStartRow = 2 .TextFileColumnDataTypes = Array(1, 9, 1, 1, 9, 1, 9, 9, 1, 1) .TextFileCommaDelimiter = True .Refresh .Delete End With End With End Sub
列数が決まっていて、いらない列も固定なら、【取り込み時に対象にしない】ことにすればいいのではという話です。
システムからcsvをダウンロードするときの話じゃないです。
(もこな2) 2023/06/03(土) 13:09:15
いらぬお節介ですが。 ウィザードの 3/3 で、不要な項目たちを一つずつ「削除」にすれば、 それらの項目は取り込まれないのです。
その動作をマクロ記録すれば、 TextFileColumnDataTypesにセットするArrayで9のところが不要項目になることがわかります。
(xyz) 2023/06/03(土) 13:41:03
再掲します。
>発想を変えて、いらない行を除外してインポートしてはどうですか? > 【参考】 >https://vbabeginner.net/paste-csv-file-to-sheet/ (xyz) 2023/06/03(土) 13:56:30
単にダブルクリックすると ・文字列が日付として誤認識されてしまうとか、 ・文字列の001 が数値の1と認識されてしまうとか、 ・文字コードが食い違うとか、 とか色々と不測の事態に見舞われることがあります。
上記のQueryを使ったインポートは、そうしたことに柔軟に対応できます。 項目ごとに書式指定ができたり、項目をスキップできたりと、 使い勝手がよいものになっています。 こうした進歩というものを取り入れていくことも有益ではないかと思われます。
お邪魔しました。 (xyz) 2023/06/03(土) 14:16:26
■5
>毎回不要な列を非表示にする作業が手間です。
>業務では毎回新規にそのようなCSVをダウンロードして毎回同じ列を非表示にして参照しています。
↑の話がCSVファイルを(エクスプローラー等から)ダブルクリックしてブックとして開いたときに勝手にそうなってほしいという話ならばちょっと難しいとおもいます。
作業用のマクロブックでもOKという話であれば
1. (エクスプローラー等の代わりに)ダイアログを表示してcsvファイルをユーザーに選択してもらう
【ブックとして扱いたい場合】 2.ブックとして開いて、いらない行を非表示にする
【テキストファイルとしてインポートする場合】 2.新規ブックを用意する 3.↑に必要な行を除外してインポートする
というアプローチならば目的が達成できる気がします。
■6
いや、(エクスプローラー等から)ダブルクリックしてブックとして開くことに拘りますという話であれば、フォーキーさんのアイデアのように個人用マクロブック使うなり、アドインにするなりして、ブックを開いたときに該当のファイル名なら特定の行を非表示にすることを考えてみてはどうでしょうか?
(もこな2) 2023/06/04(日) 11:44:28
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.