Excel VBA質問箱 IV

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

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


11590 / 13645 ツリー ←次へ | 前へ→

【15066】改段落表示について さき 04/6/14(月) 20:07 質問[未読]
【15067】Re:改段落表示について IROC 04/6/14(月) 21:10 回答[未読]
【15093】Re:改段落表示について Jaka 04/6/15(火) 14:16 回答[未読]
【15110】Re:改段落表示について さき 04/6/15(火) 21:52 質問[未読]
【15154】Re:改段落表示について Jaka 04/6/16(水) 17:28 発言[未読]
【15162】Re:改段落表示について さき 04/6/16(水) 20:27 質問[未読]
【15226】Re:改段落表示について Jaka 04/6/17(木) 16:54 発言[未読]
【15251】Re:改段落表示について さき 04/6/17(木) 21:31 質問[未読]
【15270】Re:改段落表示について Jaka 04/6/18(金) 14:04 回答[未読]
【15281】Re:改段落表示について さき 04/6/18(金) 21:25 お礼[未読]

【15066】改段落表示について
質問  さき  - 04/6/14(月) 20:07 -

引用なし
パスワード
   こんばんは。

下記のような内容のものを作りたいと
考えていますが、何かアイデアがありましたら
教えて下さい。

CSVファイルを読み込み、B,C,D,E列には
関連した項目が入っています。この関連項目は、
C,D,E,Fにずれる場合があるので時点で処理する
ように考えていますが。。。

例えばA列の
A1にB1,C1,D1,E1の値を改段落した形で表示
したいと考えています。(ひとつのセルに4つ
まとめて表示したい)しかし、値の入っていない
セルもあり(例:B1は空)、その場合は余計な
改段落はしたくないといったものです。

何かよい考えがあれば教えてください。

【15067】Re:改段落表示について
回答  IROC  - 04/6/14(月) 21:10 -

引用なし
パスワード
   どこが分からなくて、ご質問されているのでしょうか?

ご自分では、どこまで出来て、
どこが上手くいかないのでしょうか?

何を回答すればよいのか困ってます。

【15093】Re:改段落表示について
回答  Jaka  - 04/6/15(火) 14:16 -

引用なし
パスワード
   こんにちは。
よく解っていませんけど...。
例えばA1:A10に表示するとして、こんな感じでいいと思いますけど。

With Range("A1:A10")
  .WrapText = True
  .Formula = "=B1&IF(B1="""","""",CHAR(10))&C1&IF(C1="""","""",CHAR(10))&D1&IF(D1="""","""",IF(E1<>"""",CHAR(10)&E1,""""))"
  .Rows.AutoFit
End With

【15110】Re:改段落表示について
質問  さき  - 04/6/15(火) 21:52 -

引用なし
パスワード
   Jaka さん

私がイメージしていたのは、
まさにこんな感じのものなんですけど、

A列自体も検索でひろってきて、
そこから、B2,C2,D2と表示したい
と考えています。
一致したものからどうループすれば
よいのでしょうか?
値の入っている、列の最下位置も調べないといけません。

【15154】Re:改段落表示について
発言  Jaka  - 04/6/16(水) 17:28 -

引用なし
パスワード
   こんにちは。
え〜と、どう検索で拾ってきて、どこにどう表示させて、どうしようとしているのかさっぱり解りません。
さきさんの構想は頭に入っているので、エクセルにどう表示させて、どこに書き込むのかなどはわかると思いますが、第3者にはさっぱりわかりません。
シートレイアウトを記載して説明してください。

最下位の位置もレイアウトどんな状態の最下位を取得したいかで書き方も変わります。

A列だったら、こんな感じ。
Msgbox Range("A65536").End(xlUp).Row

【15162】Re:改段落表示について
質問  さき  - 04/6/16(水) 20:27 -

引用なし
パスワード
   Jaka さん

すいません。これでわかるかどうか、とりあえず、

  G列 H列 I列 J列 K列 L列 
1     No1 No2 No3 No4 No5
2  aa  aa  b     cc ddd
   b
  cc
  ddd
3  ee  ee  kkk  a  ee rr 
  kkk
   a
  ee
  rr
4  aa     aa

エクセルで表示するとこのようなものです。
まず、一番上の項目(No1〜No5)は1行目の?列(どこの列
に入ってくるかわからない)ので、1行目の
項目名から一致するものを探します。
次に、この表でいう、H列の横に一列挿入し、
H2〜L2をG2に表示させたいと考えています。

そして一番最下位置というのは、H列の値が入っている
一番下のセルという意味です。

ここで、L列以外の空白には意味があるので、
表示する時にも、空白をいれたいのですが、そのようなことは
可能でしょうか?

 

【15226】Re:改段落表示について
発言  Jaka  - 04/6/17(木) 16:54 -

引用なし
パスワード
   申し訳ありません。
何をどうしようとしているのか良く解りません。

ここのところ仕事は増えちゃって、暇が無いと言うのもありますが
さきさんのやりたいことが見えていれば、他の回答者も回答してくれていると思うんですけど、やりたいことが見えません。

>一番上の項目(No1〜No5)は1行目の?列(どこの列
>に入ってくるかわからない)ので
例えば、どうやって入れているんですか?

>行目の項目名から一致するものを探します。
何をどこからどうやって?

>H列の値が入っている
>一番下のセルという意味です。
表を見た感じでは、1番下のセルでないみたいですが、基準は?

このさい、さきさんのやっていることからやりたい事まで全部話しちゃった方が他の人も回答しやすくなると思いますけど...。

【15251】Re:改段落表示について
質問  さき  - 04/6/17(木) 21:31 -

引用なし
パスワード
   Jaka さん

すいません。私もどうすれば伝わるのか
わかりません。

>例えば、どうやって入れているんですか?

これは、CSVファイルをエクセルで、開くん
ですが、エクセルでいうと、いつも同じ量が
入ってくるとは限らないのです。落ちてくる
ファイルによって異なります。
>
>>行目の項目名から一致するものを探します。
>何をどこからどうやって?

上記の理由があるので、No1という項目名が入って
いるセルを検索し、そこから、4つ続いているセル
を一つのセルに表示させたい

>>H列の値が入っている
>>一番下のセルという意味です。
>表を見た感じでは、1番下のセルでないみたいですが、基準は?


(補足)
一番下のセルというのは、CSVファイルをエクセルで
開いたときに、値が入っているセルの位置がわからない
という意味でかきました。

B2〜B15,C2〜C15、D2〜D15、E2〜E15

      ↓
   A2〜A15(A2には、B2,C2,D2,E2を改段落で表示)
に表示したいのですが。。。
例えば、B15が、B29、B34等になる時もあり、これが一番下
のセルの意味です。
このB2〜B?までをループさせたら
どうなのかな?と思っているのですが。

1行目には、項目名(No1,No2などが入っており、値はない)
です。

内容をわかっていただけたでしょうか?

【15270】Re:改段落表示について
回答  Jaka  - 04/6/18(金) 14:04 -

引用なし
パスワード
   関数にこだわってたんで、だんだんマクロの必要性に疑問が....。
手作業で関数を書き込んでフィルドラッグで十分な気もしてきました。

Sub ドレミ天国()
Dim MRo As Variant, ERo As Long, KKS As String
Dim KS1 As String, KS2 As String, KS3 As String, KS4 As String
MRo = Application.Match("No1", Rows(1), 0)
If IsError(MRo) Then MsgBox "No1がありません。": End
ERo = ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Count).Row
KS1 = "=RC[1]&IF(RC[2]="""","""",IF(AND(COUNTA(RC[1]:RC[1])>0,RC[2]<>""""),CHAR(10),"""")"
KS2 = "&RC[2])&IF(AND(COUNTA(RC[1]:RC[2])>0,RC[3]<>""""),CHAR(10),"""")"
KS3 = "&RC[3]&IF(AND(COUNTA(RC[1]:RC[3])>0,RC[4]<>""""),CHAR(10),"""")&RC[4]"
KS4 = "&IF(AND(COUNTA(RC[1]:RC[4])>0,RC[5]<>""""),CHAR(10),"""")&RC[5]"
KKS = KS1 & KS2 & KS3 & KS4
With Range(Cells(2, MRo - 1), Cells(ERo, MRo - 1))
  .VerticalAlignment = xlTop
  .WrapText = True
  .FormulaR1C1 = KKS
  .Rows.AutoFit
End With
End Sub

【15281】Re:改段落表示について
お礼  さき  - 04/6/18(金) 21:25 -

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

お忙しいのに、お返事いただきありがとう
ございました。何分、セルの量が膨大で、
簡易にできるものが必要でした。

コードをたどってみます。

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