Excel VBA質問箱 IV

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

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


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

【37455】文字列指定について ヒロ 06/5/8(月) 15:19 質問[未読]
【37456】Re:文字列指定について inoue 06/5/8(月) 16:18 発言[未読]
【37468】Re:文字列指定について Kein 06/5/8(月) 20:48 回答[未読]
【37478】Re:文字列指定について Jaka 06/5/9(火) 12:04 発言[未読]

【37455】文字列指定について
質問  ヒロ  - 06/5/8(月) 15:19 -

引用なし
パスワード
   文字列を複数個一列に並べ、改行し、別の文字列を並べ表示させる際、
前の行と次の行の頭を揃えたいのですが、どのようにすれば良いか教えてください。

下記の悪い例のようにTABを使用すると、文字列の長さによっては、ずれて表示されてしまい、困っています。


○良い例
test    test    test
testtest  testtest  testtest 

○悪い例
test  test  test
testtest  testtest  testtest


拙い日本語で質問内容がわかりにくいとは思いますが、よろしくお願いします。

【37456】Re:文字列指定について
発言  inoue E-MAILWEB  - 06/5/8(月) 16:18 -

引用なし
パスワード
   >下記の悪い例のようにTABを使用すると、文字列の長さによっては、
>ずれて表示されてしまい、困っています。
ズレて見えるのは表示しているエディタの問題だと思います。

タブに相当する文字数が少ないか、
等幅フォントを使っていないのではないですか?

Excel上でこのように表示される場合は、
テキストウィザードで区切り文字にTabを指定して開いてみてください。

【37468】Re:文字列指定について
回答  Kein  - 06/5/8(月) 20:48 -

引用なし
パスワード
   ワークシート上の1列分のセルの文字列を、いくつか横に繋げてテキストファイルに
出力することを想定しているのでしょーか ?
ならば仮に A1 以下A列の最終入力行までの値を、1行に3つ並べるとして

Sub Mk_MyText()
  Dim Mx As Long
  Dim Buf As String, MySt As String
  Dim MyR As Range, C As Range
  Const MyF As String = "C:\temp\Test.txt"
 
  If Dir(MyF) <> "" Then Kill MyF
  Set MyR = Range("A1", Range("A65536").End(xlUp))
  With MyR.Offset(, 255)
   .Formula = "=LEN($A1)"
   Mx = WorksheetFunction.Max(.Cells) + 1
   .ClearContents
  End With
  Buf = String(Mx, "A")
  Open MyF For Output Access Write As #1
  For Each C In MyR
   LSet Buf = C.Value
   MySt = Buf & Buf & Buf
   Print #1, MySt
  Next
  Close #1: Set MyR = Nothing
  Shell "Notepad.exe " & MyF, vbMaximizedFocus
End Sub

ただし、LSetステートメントを使っているので、
空白を埋める文字はスペースになります。

【37478】Re:文字列指定について
発言  Jaka  - 06/5/9(火) 12:04 -

引用なし
パスワード
   こういう事でいいのか解りませんが...。
因みにメッセージボックスだと等幅フォントじゃないのでずれます。

Dim st As String * 15
st = "test"
st1 = st & st & st
st = "testtest"
st2 = st & st & st
MsgBox st1 & vbLf & st2
Cells(1, 1).Value = st1 & vbLf & st2
Cells(1, 1).Font.Name = "MS ゴシック"

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