Excel VBA質問箱 IV

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

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


3535 / 13644 ツリー ←次へ | 前へ→

【61544】集計したファイルをファイルに出力するには 初心者です。 09/5/15(金) 19:33 質問[未読]
【61545】Re:集計したファイルをファイルに出力する... kanabun 09/5/15(金) 19:59 発言[未読]
【61550】Re:集計したファイルをファイルに出力する... kanabun 09/5/16(土) 9:37 発言[未読]
【61553】Re:集計したファイルをファイルに出力する... kanabun 09/5/16(土) 21:48 発言[未読]
【61562】Re:集計したファイルをファイルに出力する... 初心者です。 09/5/18(月) 10:27 お礼[未読]
【61563】Re:集計したファイルをファイルに出力する... kanabun 09/5/18(月) 11:40 発言[未読]

【61544】集計したファイルをファイルに出力するに...
質問  初心者です。  - 09/5/15(金) 19:33 -

引用なし
パスワード
    質問があり、悩んでいます。

 EXCELの集計機能で伝票NOをKEYに集計したファイルを
 そのままの内容でファイル出力したいのですがうまくいきません。
 
 
 例)

 伝票NO    金額     コメント
 AAA1      100      AA1
 AAA1      100      AA1
 AAA1      100      AA1
 AAA1 計     300      AA1   この行だけを表示  
 AAA2      200      AA2
 AAA2      200      AA2
 AAA2      200      AA2
 AAA2 計     600      AA2   この行だけを表示  
 AAA3      300      AA3
 AAA3      300      AA3
 AAA3      300      AA3
 AAA3 計     900      AA3   この行だけを表示  
 
 左端に1.2.3と表示され 2の下が全て+の状態にすると
 計のみの明細となります。

 この+の状態のままファイルを出力したいのですが、普通にすると
 上のように全明細のまま表示されてしまいます。
 どなたかアドバイス御願いします。

 お手数ですが宜しく御願いします。


 

【61545】Re:集計したファイルをファイルに出力す...
発言  kanabun  - 09/5/15(金) 19:59 -

引用なし
パスワード
   ▼初心者です。 さん:

> 左端に1.2.3と表示され 2の下が全て+の状態にすると
> 計のみの明細となります。
>
> この+の状態のままファイルを出力したいのですが、普通にすると
> 上のように全明細のまま表示されてしまいます。

「ファイルを出力」ということがちょっと分からないのですが、
集計して表示されている「計」の行だけコピーしたいのなら、
「集計」「2の下が全て+の状態に」した後の表全体を選択して
  [F5]キー(ジャンプ) →「セル選択」ボタン  →可視セル [OK]
として可視行だけ選択し、この状態で Ctrl+[C]でコピーすればいいです。

マクロにしたいなら、この操作をマクロ記録してください。

C列の「コメント」が空白でよいなら、
同じ[データ]メニュ−内の[統合]を使う手もありますね?

【61550】Re:集計したファイルをファイルに出力す...
発言  kanabun  - 09/5/16(土) 9:37 -

引用なし
パスワード
   ▼初心者です。 さん:

> EXCELの集計機能で伝票NOをKEYに集計したファイルを
> そのままの内容でファイル出力したいのですが

> この+の状態のままファイルを出力したいのですが、普通にすると
> 上のように全明細のまま表示されてしまいます。

依然として「ファイル出力」ということが分からない。。
「合計」行だけ テキストファイルとかCSV形式でファイル出力したい
ということではないんですか?

【61553】Re:集計したファイルをファイルに出力す...
発言  kanabun  - 09/5/16(土) 21:48 -

引用なし
パスワード
   一応、集計でアウトラインレベル[2]表示した可視範囲を
テキストファイル出力するまでの操作をマクロ記録し、
それを加工したコードを(参考までに)Upしておきますね。

Option Explicit

Sub Macro1()
' マクロ記録日 : 2009/5/16 ユーザー名 : kanabun
'
 With Range("A1").CurrentRegion
 ' 集計
   .Subtotal GroupBy:=1, Function:=xlSum, _
   TotalList:=Array(2), _
   Replace:=True, SummaryBelowData:=True
 End With
   
 With Range("A1").CurrentRegion
  ' C列「コメント」の合計行へのフィル
   .Columns(3).Cells.Resize(.Rows.Count - 1) _
   .SpecialCells(xlBlanks).FormulaR1C1 = "=R[-1]C"
 
   ' アウトラインレベルを[2]にして 合計行だけ表示
   .Worksheet.Outline.ShowLevels RowLevels:=2
 End With
 
 '出力先フォルダとファイル名の指定
 Dim io As Integer
 Dim myText
 Dim myFilter As String
 Dim myTitle As String
 myTitle = "名前を付けて範囲の保存"
 myFilter = "Textファイル,*.txt,CSVファイル,*.csv"
 myText = ActiveSheet.Name & "_合計"
 myText = Application.GetSaveAsFilename( _
     myText, myFilter, 1, myTitle)
 If VarType(myText) = vbBoolean Then Exit Sub
 
 '可視セルだけCopyしてクリップボードへ送る
 Range("A1").CurrentRegion. _
     SpecialCells(xlVisible).Copy
 ' クリップボードのデータをテキスト形式でファイル出力
 Dim ss As String
 Const CLSID_DataObject = _
    "1C3B4210-F441-11CE-B9EA-00AA006B1A69"
 With GetObject("new:" & CLSID_DataObject)
   .GetFromClipboard
   ss = .GetText  'Clipboard内の(Tab区切り)Textを取得
 End With
 Application.CutCopyMode = True
 io = FreeFile()
 Open myText For Output As io
 If myText Like "*.csv" Then    '拡張子がcsvのときは
   ss = Replace(ss, vbTab, ",") 'Tabを<,>に置換
 End If
 Print #io, ss;          'ファイル出力
 Close io
 MsgBox "保存しました", , myText
End Sub

※クリップボード経由で出力しなくても、 シートが一枚だけの新規Bookに
直前の方法で可視セルだけコピーして、それをファイルメニュ−から
[名前をつけて保存](ファイルの種類を *.txtとか *.csvを指定して)
保存してもいいです。

【61562】Re:集計したファイルをファイルに出力す...
お礼  初心者です。  - 09/5/18(月) 10:27 -

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

ありがとうございました。 
中身確認してみます。
因みに、ファイル出力はEXCEL形式です。
  

【61563】Re:集計したファイルをファイルに出力す...
発言  kanabun  - 09/5/18(月) 11:40 -

引用なし
パスワード
   ▼初心者です。 さん:

> 中身確認してみます。
> 因みに、ファイル出力はEXCEL形式です。
>  
れれれ? Excel形式のままなら 前のレスは参考にならないです。。
「集計」後のアウトラインレベル[2]の状態を ウラの詳細(非表示行)
を削除した表としてExcel形式で保存したいということですか?

それなら、単純に 【61545】の方法

>「集計」「2の下が全て+の状態に」した後の表全体を選択して
>  [F5]キー(ジャンプ) →「セル選択」ボタン  →可視セル [OK]
> として可視行だけ選択し、この状態で Ctrl+[C]でコピーすればいいです。

これを別シートないし 新規Bookに貼り付ければよさそうに思えますが?

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