advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 103 for フォーマット 自動 印刷 (0.009 sec.)
フォーマット (1423), 自動 (14517), 印刷 (5709)
[[20111020082648]]
#score: 8137
@digest: 5c26f050aad2c602795524b95a54a693
@id: 56348
@mdate: 2011-10-20T08:18:50Z
@size: 5694
@type: text/plain
#keywords: ├──┼──────┼ (23246), ├──────┼ (22862), 題1 (8430), 題2 (8301), 題3 (7635), mycol (6015), 表題 (5658), 結合 (3465), mergecells (3015), 〜" (2482), mergearea (2180), 目視 (2090), 右隣 (1624), 半分 (1428), と" (1250), 枚数 (1241), │ (1235), 絶対 (1069), xltoleft (1009), columns (736), チェ (696), ケー (692), e5 (677), ェッ (630), 両方 (575), cells (571), msgbox (543), 印刷 (540), デー (461), 複数 (457), 判断 (456), セル (445)
『セル結合を多用した表のなかでの検索と判断』(もんもん)
いつもお世話になっております。 セルの結合を多く用いた表の中から特定の文字列を探して、その隣のセルの内容に よって処理を分ける方法を教えてください。 例えば、4列4行ずつ、あるいは4列2行ずつセルを結合した表があるとします。 下記の状態で、A1,E1,E3はそれぞれ表題です。 また、A5,A9,A11…の値はそれぞれ、0A,0B,0C…と決まっています。 データはE5以降に入っています。 同様の形式で複数の表(1シートに1つ)があるのですが、なかにはデータがない ものもあります。そのような表は、その後の処理を飛ばしたいのです。 「データがない表」という条件は、E5とE7のどちらかまたは両方に「以下余白」または 「BLANK」の文字がある、あるいは両方とも空白である、ことです。 ┌──┬──────┬ │A1 │E1(表題2) │ │(表 ├──────┼ │題1)│E3(表題3) │ ├──┼──────┼ │ │E5 │ │A5 ├──────┼ │ │E7 │ ├──┼──────┼ │ │E9 │ │A9 ├──────┼ │ │E11 │ ├──┼──────┼ 困っているのは、たまに結合のしかたが少し異なる表があることです。 例えば、A列だけ結合から除外してあったりするとE5はF5になってしまいます。 方法として考えたのは、表題1から0Aと0Bの縦並びを見つけて(0Aだけではデータ 内容と重複する恐れがあるため)、そのとき0Aが入っていたセルの右隣の上半分と 下半分のセルの内容を調べるということです。 表題1の下のセルの右隣というのもありますが、その表題もITEM No.やbセったりします。 他にも方法があるかとおもいます。 どのようにVBAを作ればいいのでしょうか? 教えてください。よろしくお願いします。 (WindowsXP, Excel 2003) ---- >例えば、A列だけ結合から除外してあったりするとE5はF5になってしまいます。 A列が結合からはずされている場合、なぜ E5がF5になるのか、その因果関係がわからないなぁ・・ それと、「例えば」ということは、そのほかのケースもありうる? もしそうなら、人間が目で見て判断するしかないねぇ。「例えば」のケースを全て特定して列挙してくれれば 考えることもできるけど。 結合云々の前に、E5になったりF5になったり(あるいはそれ以外)ということは、あるシートがあって 入力担当者によって、ある項目をE5に書いたりF5に書いたり、あるいはそれ以外に書いたりしていて それをVBAでチェックしたいといっているのと同じなので。 もう1つ。本来はエクセルを最大限に活用しようとすれば、1レコード1行が「原則」で、 その形でメンテされているものを「見栄えをよくするために」アップされたフォーマットに加工するというのが たぶん望ましい方法なんだろうね。 まぁ、そうはいっても、客先から送られてきたブックで、依頼しても要求を聞いてくれないケースは 多いんだろうけど。 あぁ、それと、セルが結合されているシートって扱いにくいので、どんな処理をするかにもよるけど このシートをコピーして複製シートをつくって、そのシートの結合をはずして、そこで処理するという ことも考えられるかもね。 (ぶらっと) ---- わかりにくくてすみません。 > A列が結合からはずされている場合、 例えば、A列は結合されていなくて、B1〜E4で結合されている場合ということです。 その場合、表題3の下をクリックするとF5になると思います。 例えばばかりで申し訳ありませんが、複数の人が何年も前からファイルをコピーしたり 修正したりして作成し続けている表なので、今から形式を変えることはできないのです。 最終的な目的としては、複数のファイルの複数のシートにある表を一気にプリントアウトしたい のです。ただしデータが入っていない表は印刷したくないのです。 セルE5とE7の値を調べるVBAで印刷したものと、調べずにすべて印刷した後で目視でデータの ない表を除けたものと比較したところ、枚数に違いがありました。 調べた結果、あるファイルの表の結合の状態が他と異なるため、E5とE7が空白とみなされて しまい印刷されなかったのです。 目視でデータのない表を除ける作業は簡単ですが、枚数が多いと時間もかかるし 間違いの恐れもあるので、自動的にできるといいなと思ったのですが・・・ (もんもん) ---- う〜ん・・「例えば」ではねぇ・・・ それにかわる、「確かなルール」はあるのかな? ・2行ずつの結合は「例えば」ではなく「絶対」 ・だからチェックするセルは5行目と7行目、これは「絶対」 ・チェックする列は、「その行」に最初にあらわれる「列結合セルの右」、これは「絶対」 とか。 上記だったら、以下、参考コード。 Sub Test() Dim z As Long Dim j As Long Dim myCol As Long Dim ck1 As String Dim ck2 As String If Range("A1").CurrentRegion.Rows.Count < 5 Then MsgBox "データはないよ〜" Exit Sub End If For j = 1 To Cells(5, Columns.Count).End(xlToLeft).Column If Cells(5, j).MergeCells And Cells(5, j).MergeArea.Columns.Count = 1 Then myCol = j Exit For End If Next If myCol = 0 Then MsgBox "表題2,3用の列はないよ〜" Exit Sub End If ck1 = Cells(5, myCol).Value ck2 = Cells(7, myCol).Value MsgBox "チェックすべきセルの値は、きっと " & ck1 & " と " & ck2 & " なんじゃないかな?" End Sub (ぶらっと) ---- ↑でも結果は出るだろうけど、ちょっと「おばか」なところがあったので訂正して再掲。 Sub Test2() Dim z As Long Dim j As Long Dim myCol As Long Dim ck1 As String Dim ck2 As String If Range("A1").CurrentRegion.Rows.Count < 5 Then MsgBox "データはないよ〜" Exit Sub End If For j = 1 To Cells(5, Columns.Count).End(xlToLeft).Column If Cells(5, j).MergeCells Then myCol = j + Cells(5, j).MergeArea.Columns.Count Exit For End If Next If myCol = 0 Then MsgBox "表題2,3用の列はないよ〜" Exit Sub End If ck1 = Cells(5, myCol).Value ck2 = Cells(7, myCol).Value MsgBox "チェックすべきセルの値は、きっと " & ck1 & " と " & ck2 & " なんじゃないかな?" End Sub (ぶらっと) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201110/20111020082648.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97059 documents and 608315 words.

訪問者:カウンタValid HTML 4.01 Transitional