[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/07/28(Thu) 12:42
投稿者名:質問侍
Eメール:
URL :
タイトル:
エクセルのセルの連結/罫線
はじめましていつも参考にさせていただいています。
早速ですが質問させていただきます
↓のようなエクセルのフォーマットがあります
+---------------------------------------+
|               表題          |
+-------+---------+-----------+---------+
|A      |B        |C          |D        |
+-------+---------+-----------+---------|

このエクセルにvbから文字を入れたいのですがセルの表示範囲を超えたらセルを連結し、ちょうどいいとこ
ろで罫線引くって所まで自動でやりたいのです。
vbから出力される値は可変で全角半角まぜまぜなのです。イメージ的には

vbから"ABCDEFGHIJKLNMO"と言う文字列をセルのエクセルのセル"C"に出力する時には
+---------------------------------------+
|               表題          |
+-------+---------+-----------+---------+
|A      |B        |ABCDEFGHIJK|D        |
+-------+---------+-----------+---------|
                     ↑で表示が出来なくなったら

+---------------------------------------+
|               表題          |
+-------+---------+-----------+---------+
|A      |B        |ABCDEFGHIJK|D        |
+-------+---------|LNMO       |---------+
                  +-----------+
な感じです。
説明へたくそでごめんなさい。エクセル出力のOCXなんかも教えていただけるとありがたいです
環境はW2000/VB6.0/ECXEL2000です。よろしくお願いします

投稿時間:2005/07/28(Thu) 13:07
投稿者名:
Eメール:
URL :
タイトル:
Re: エクセルのセルの連結/罫線
セルに対して「折り返して全体を表示」の書式設定をして、出力後にFitさせた方が
スマートなやり方じゃないかなぁと思います。
折り返しの部分だけセル連結すると、左右のセルとの罫線がガタガタになっちゃいません?
データ列が複数あった場合(A2〜D2等)の出力もややこしいことになりそうですし。

投稿時間:2005/07/28(Thu) 13:30
投稿者名:質問侍
Eメール:
URL :
タイトル:
Re^2: エクセルのセルの連結/罫線
琴様御回答ありがとうございます!!

説明がたりなかったかもしれません最終てきには結構な量のデータを出力する事になり具体的には

+---------------------------------------+
|               表題          |
+-------+---------+-----------+---------+
|L.SAMUR|KANAGAWA |NO.001_KEKA|TYOUSEI  |
|       |         |##0.25%    +---------|         |
|       |         +-----------|NO2001   |      
|       |         |           |YOTTESAIY|
|       |         |           |OU       |
+-------+---------+-----------+---------|
|M.TOROU|TIBA     |NO.002#100 |FUKA     |
+---------------------------------------+
|N.YOSI |TIBA     |NO.003#0.22|RYOU     |
+-------+---------+-----------+---------+
|       |         |           |IMANOTOKO|

           ↓次ページへ
+-------+---------+-----------+---------+
|       |         |           |RODAIJYOU|
|       |         |           |BU!!     |
+-------+---------+-----------+---------+

みたいにしたいのです。
表示文字の長さみたいのがとれれば大丈夫だと思うのですが
なんせ相手がエクセルなんで結構めんどくさいかと
最終的には紙ベースで出力したいのです。
よろしくお願いします。

投稿時間:2005/07/28(Thu) 16:25
投稿者名:質問侍
Eメール:
URL :
タイトル:
Re^3: エクセルのセルの連結/罫線
いろいろやってみたり調べてみたりしたのですが
C言語の GetTextExtent のようなのがあればこれ幸いなのですがありませんかね?

投稿時間:2005/07/28(Thu) 17:58
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^4: エクセルのセルの連結/罫線
その前に同じ質問を No.3894 でもされているようですが?
ご利用される前に[初めにお読み下さい]等の注意事項をご覧下さい。

レスが付いたもの等を勝手に削除される方があるので
削除機能は外しておりますが、修正はできますので、修正で
修正するか、削除依頼を書き込んで下さい。

投稿時間:2005/07/28(Thu) 18:05
投稿者名:質問侍
Eメール:
URL :
タイトル:
Re^5: エクセルのセルの連結/罫線
管理人の花ちゃんさん申し訳ございません。
メールも送らせていただいたのですが削除の仕方が解らないとゆうか出来ないのです
すみませんご迷惑おかけしてます。

投稿時間:2005/07/29(Fri) 09:03
投稿者名:GOD
Eメール:
URL :
タイトル:
Re: エクセルのセルの連結/罫線
確信がないんで控えていたけど一応。

1) エクセルの対象セルの列幅、フォント情報を取得する。
2) 取得したフォント情報(サイズ、種類、ボーダル等の情報)をVBのフォームのフォント情報に設定する

3) TextWidth("対象文字列")を使って幅を求める。
4) 列幅と文字幅を比較して処理を行う。

フォームのScaleModeに何を設定すればいいのか?
エクセルが返す対象セルの幅ってキャラクタなのかな?(<--- これがよく分からない)

#出来るようになったらフィードバックよろしく(^^

投稿時間:2005/07/29(Fri) 13:02
投稿者名:質問侍
Eメール:
URL :
タイトル:
Re^2: エクセルのセルの連結/罫線
エクセルのセルの幅なんですが結局ちゃんとした値はとれなかったです。
幸いフォーマットのセル幅は決め打ちなので↓の手順で計算してみました。

1)代入先のセルの横幅が10.00で決め打ち(僕の場合ですが)
2)エクセルの標準のフォント設定をテキストボックに設定する。
3)テキストボックスに"0"を入力して<変数>=TextWidth(Text1.Text)で横幅をとる。
4)<変数>×10.00でセルの横幅

一応これでなんとかなりましたがまだ改善した方がよさそうな感じでした。
GODさんよきアドバイスありがとうございました。

投稿時間:2005/07/29(Fri) 13:42
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: エクセルのセルの連結/罫線
> エクセルのセルの幅なんですが結局ちゃんとした値はとれなかったです。
ColumnWidth プロパティ で取得できますが。

投稿時間:2005/07/29(Fri) 10:43
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: エクセルのセルの連結/罫線
> このエクセルにvbから文字を入れたいのですがセルの表示範囲を超えたらセルを連結し、ちょうど
いいとこ
> ろで罫線引くって所まで自動でやりたいのです。

列幅を一定でセル内のデータを全て表示させたいのなら、マージする必要は
ないのでは、書式設定で折り返して表示を設定して、行の高さを自動で設定
すればいいだけでは。


というか、何が(どこの部分が)解らないのかが読み取れません。
(やりたい事(解らない事)をExcel上でマクロを取ってそのマクロを見れば)

投稿時間:2005/07/29(Fri) 12:48
投稿者名:質問侍
Eメール:
URL :
タイトル:
問題解決!!
GODさん花ちゃんさん御回答ありがとうございました!!!
GODさんのを参考に作ってみました結果無事解決しました。ありがとうございます★