[リストへもどる]
一括表示

投稿時間:2003/02/18(Tue) 11:34
投稿者名:
URL :
タイトル:
スペース入り文字の改行の質問です。
カンマ区切りのデータで”○○○○○_○___○”という「○=漢字 _=スペースです」のデータを2行に均等割付的な改行をしたいのですが、
 「○○○○○
  ○___○」
  ↑のような感じです
漢字分断機能を使用したのですが、少しばかり意味を取り違えてしまいました。文字間でスペースを認識した時のみの改行する形で処理をするにはどのようなプログラムを組めば良いのか教えていただきたく掲示板をお願いしました。宜しくお願いします。

使用環境は WinXP・VB6.0・SP5です。

投稿時間:2003/02/18(Tue) 11:55
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: スペース入り文字の改行の質問です。
こう言う事でしょうか?

Private Sub Command1_Click()
    Dim MyName As String
    MyName = "VBレスキュー(花ちゃん)"
    MyName = Left$(MyName, InStr(MyName, " ") - 1) & vbCrLf & _
              Mid$(MyName, InStr(MyName, " ") + 1, _
               Len(MyName) - InStr(MyName, " ") + 1)
    Debug.Print MyName
End Sub

尚、エラーチェックはしておりません。

投稿時間:2003/02/18(Tue) 14:18
投稿者名:
URL :
タイトル:
Re^2: スペース入り文字の改行の質問です。
> こう言う事でしょうか?
>
> Private Sub Command1_Click()
>     Dim MyName As String
>     MyName = "VBレスキュー(花ちゃん)"
>     MyName = Left$(MyName, InStr(MyName, " ") - 1) & vbCrLf & _
>               Mid$(MyName, InStr(MyName, " ") + 1, _
>                Len(MyName) - InStr(MyName, " ") + 1)
>     Debug.Print MyName
> End Sub
>
> 尚、エラーチェックはしておりません。

早速のレスありがとうございました。
すぐに実行をしてみまして、理想とする形になりました。ありがとうございました。

それから実際に使用するファイルをサイトにある(テキストファイル(CSV形式)を変数毎に読み書きする)を活用させていただき、Formに貼り付けた(TEXT5.TXTなど)に活かせないものかと自分なりに考え、"MyName"をTEXT名を入れたり変更しながらやってみたのですが、挫折してしまいました。
再度お願いしたく掲示板を書きました。お忙しいとは思いますが、宜しくお願いいたします。

投稿時間:2003/02/18(Tue) 16:32
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: スペース入り文字の改行の質問です。
> それから実際に使用するファイルをサイトにある(テキストファイル(CSV形式)を
>変数毎に>読み書きする)を活用させていただき、Formに貼り付けた(TEXT5.TXTなど)に
>活かせないものかと自分なりに考え、"MyName"をTEXT名を入れたり変更しながら
>やってみたのですが、挫折してしまいました。
> 再度お願いしたく掲示板を書きました。お忙しいとは思いますが、宜しく
>お願いいたします。

やりたい事がいま少し解らないのですが?
TEXT5.TXT 等のデータを保存する場合はここの[テキストファイルを丸ごと読み書きする]
を参考にして下さい。
保存したいデータの形式によって処理も違いますし、データもその形式でないと使用できません。

※ 投稿される場合は投稿原稿に合せて 手動改行 強制改行 図表モード を選択して下さい。

投稿時間:2003/02/18(Tue) 17:37
投稿者名:
URL :
タイトル:
Re^4: スペース入り文字の改行の質問です。
> > それから実際に使用するファイルをサイトにある(テキストファイル(CSV形式)を
> >変数毎に>読み書きする)を活用させていただき、Formに貼り付けた(TEXT5.TXTなど)に
> >活かせないものかと自分なりに考え、"MyName"をTEXT名を入れたり変更しながら
> >やってみたのですが、挫折してしまいました。
> > 再度お願いしたく掲示板を書きました。お忙しいとは思いますが、宜しく
> >お願いいたします。
>
> やりたい事がいま少し解らないのですが?
> TEXT5.TXT 等のデータを保存する場合はここの[テキストファイルを丸ごと読み書きする]
> を参考にして下さい。
> 保存したいデータの形式によって処理も違いますし、データもその形式でないと使用できません。
>
> ※ 投稿される場合は投稿原稿に合せて 手動改行 強制改行 図表モード を選択して下さい。

すいません。改めて書きます。
元々のCSVファイルの中に”○○○○○_○___○”のデータがあり、
そのデータを一括読込みでカンマ区切りのデータ分、FromにテキストBOXを貼り付け、
”○○○○○_○___○”がテキストBOX取り込まれ、表示されるテキストBOXを、
 「○○○○○
  ○___○」という感じの
2行に分割して表示をするという方法をイメージとして考えていたのですが。
(他にはテキストBOXをラベルに貼り変えての表示のイメージも考えました。)
まずは文字の改行の勉強からと思い、1番最初の掲示板を立てました。

このような感じで伝わりましたでしょうか?
宜しくお願いします。

投稿時間:2003/02/18(Tue) 18:49
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: スペース入り文字の改行の質問です。
2段書したのをそのままCSV形式で保存したいなら無理だと思います。
そういった書式的な事は表示する場所で設定しないと。

投稿時間:2003/02/18(Tue) 23:57
投稿者名:
URL :
タイトル:
Re^6: スペース入り文字の改行の質問です。
> 2段書したのをそのままCSV形式で保存したいなら無理だと思います。
> そういった書式的な事は表示する場所で設定しないと。

レス有難う御座います。
保存と言う形ではなく、最終的にデータを取り込んで表示をしたものを紙(封筒等)に
印刷をしたいと思って居るのですが・・・・。印刷のソースは何度も失敗を繰り返し、
どうにか形にはなったのですが、データを取り込み後の2行に改行するのは印刷でも
無理なのでしょうか?宜しくお願いします。

投稿時間:2003/02/19(Wed) 00:49
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^7: スペース入り文字の改行
基本的に表示も印字も同じです。
表示位置を右の方に移動したい場合文字の前にスペースを入れますよね。
印刷する時の位置も同じ事がいえるかと思います。

Private Sub Command1_Click()
    Dim MyName As String
    MyName = "VBレスキュー(花ちゃん)"
    MyName = Left$(MyName, InStr(MyName, " ") - 1) & vbCrLf & _
              Mid$(MyName, InStr(MyName, " ") + 1, _
               Len(MyName) - InStr(MyName, " ") + 1)
    
    'こちらは左揃えになります。
    Printer.Print MyName
    
    
    'こちらは指定できます。
    MyName = "VBレスキュー(花ちゃん)"
    Locate 5, 3, Left$(MyName, InStr(MyName, " ") - 1)
    Locate 5, 4, Mid$(MyName, InStr(MyName, " ") + 1, _
                   Len(MyName) - InStr(MyName, " ") + 1)
    Printer.EndDoc
End Sub

'印刷位置指定用関数 キャラクターモードを mm とかにすれば mm 単位で指定できます。
'詳しくはここの印刷関係を見て下さい。
Private Sub Locate(X As Long, Y As Long, myStr As String)
    With Printer
        .ScaleMode = vbCharacters   'キャラクターモードに設定
        .CurrentX = X               '水平座標の設定
        .CurrentY = Y               '垂直座標の設定
    End With
    Printer.Print myStr             '指定位置に文字列を印刷(表示)
End Sub

投稿時間:2003/02/19(Wed) 17:37
投稿者名:
URL :
タイトル:
Re^8: スペース入り文字の改行
> 基本的に表示も印字も同じです。
> 表示位置を右の方に移動したい場合文字の前にスペースを入れますよね。
> 印刷する時の位置も同じ事がいえるかと思います。
>
> Private Sub Command1_Click()
>     Dim MyName As String
>     MyName = "VBレスキュー(花ちゃん)"
>     MyName = Left$(MyName, InStr(MyName, " ") - 1) & vbCrLf & _
>               Mid$(MyName, InStr(MyName, " ") + 1, _
>                Len(MyName) - InStr(MyName, " ") + 1)
>    
>     'こちらは左揃えになります。
>     Printer.Print MyName
>    
>    
>     'こちらは指定できます。
>     MyName = "VBレスキュー(花ちゃん)"
>     Locate 5, 3, Left$(MyName, InStr(MyName, " ") - 1)
>     Locate 5, 4, Mid$(MyName, InStr(MyName, " ") + 1, _
>                    Len(MyName) - InStr(MyName, " ") + 1)
>     Printer.EndDoc
> End Sub
>
> '印刷位置指定用関数 キャラクターモードを mm とかにすれば mm 単位で指定できます。
> '詳しくはここの印刷関係を見て下さい。
> Private Sub Locate(X As Long, Y As Long, myStr As String)
>     With Printer
>         .ScaleMode = vbCharacters   'キャラクターモードに設定
>         .CurrentX = X               '水平座標の設定
>         .CurrentY = Y               '垂直座標の設定
>     End With
>     Printer.Print myStr             '指定位置に文字列を印刷(表示)
> End Sub

深夜にもかかわらずご指導ありがとうございました。
早速朝から取り組みまして、少しずつですが印刷出来るようになりました。
ただ、CSVファイル一括取り込みで得たデータを改行させて表示が、今の時間に
なってもなかなか出来ずです(汗)自分のデータへの参照の仕方に問題があるようで。
もう少し弄ってチャレンジしてみます。それでも駄目だった時は再度お願いします。

それと、これはかなり理想の話ですが、印刷をしながらデータにスペースがあったら
改行って言う形でのプログラムの作成って出来るものですか?
今の自分には考えも付かないので到底無理だとは思うのですが、
憧れという感じで想像してしまいました。出来たら凄いな・・・と。

投稿時間:2003/02/19(Wed) 17:55
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: (続)スペース入り文字の改行
長くなったのでこちらに移動します。

> それと、これはかなり理想の話ですが、印刷をしながらデータにスペースがあったら
> 改行って言う形でのプログラムの作成って出来るものですか?
> 今の自分には考えも付かないので到底無理だとは思うのですが、
> 憧れという感じで想像してしまいました。出来たら凄いな・・・と。

別に難しい事ではありません。
前回も説明しましたが、 Instr 関数でスペースがあるか、あれば何文字目かを
印刷するまえに取得すればいいだけです。

    Dim MyName As String
    MyName = "VBレスキュー(花ちゃん)"
    MyName = Left$(MyName, InStr(MyName, " ") - 1) & vbCrLf & _
              Mid$(MyName, InStr(MyName, " ") + 1, _
               Len(MyName) - InStr(MyName, " ") + 1)
    
    Printer.Print MyName

前回封筒に印刷したいとおっしゃってたようですが?
具体的にはどのようなデータですか? 1件分のデータでも投稿して
頂ければもう少し具体的な説明ができるのですが?
 

投稿時間:2003/02/20(Thu) 12:04
投稿者名:
URL :
タイトル:
Re^2: (続)スペース入り文字の改行
> 長くなったのでこちらに移動します。
>
> > それと、これはかなり理想の話ですが、印刷をしながらデータにスペースがあったら
> > 改行って言う形でのプログラムの作成って出来るものですか?
> > 今の自分には考えも付かないので到底無理だとは思うのですが、
> > 憧れという感じで想像してしまいました。出来たら凄いな・・・と。
>
> 別に難しい事ではありません。
> 前回も説明しましたが、 Instr 関数でスペースがあるか、あれば何文字目かを
> 印刷するまえに取得すればいいだけです。
>
>     Dim MyName As String
>     MyName = "VBレスキュー(花ちゃん)"
>     MyName = Left$(MyName, InStr(MyName, " ") - 1) & vbCrLf & _
>               Mid$(MyName, InStr(MyName, " ") + 1, _
>                Len(MyName) - InStr(MyName, " ") + 1)
>    
>     Printer.Print MyName
>
> 前回封筒に印刷したいとおっしゃってたようですが?
> 具体的にはどのようなデータですか? 1件分のデータでも投稿して
> 頂ければもう少し具体的な説明ができるのですが?
>  

お返事ありがとうございました。
データなんですが下記に書いてみますので宜しくお願いします。

「名前(),会社名(),役職(代表取締役 社   長),住所1,住所2,住所3,郵便番号」

と、いう形でデータがCSVファイルで1000行ほど入っています。
そのファイルを→一括読込み→フォームにあるテキストボックスに表示→印刷
っていう形で使用を考えております。その際、印刷はバイト数で扁平率の変更や、
実行時に表示しているテキストボックスの印刷、ファイル一括印刷など、
色々このサイトのヘルプを大いに活用させていただいております。
 そして印刷実行をしている時に本題である”役職”印刷時にスペース文字があり、
2行改行にするソース作成にぶつかりまして、後はご存知の通りでございます。

最近は新たに葉書(縦書き系)の印刷時にアラビア数字を漢数字にと言う問題にぶつかっています。
これはデータを読み込みの際に変更をしないといけないようで日々上のスペース文字の改行と共に
悪戦苦闘しながら微力ながら頑張ってます。

投稿時間:2003/02/20(Thu) 13:14
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: (続)スペース入り文字の改行
私の場合役職名は上に小さな字で印刷するようにしておりました。
住所録関係の印刷はここの駄作ソフト集にもありますので参考にして
下さい。
又、Excel&Word関係に Wordの差込印刷機能を利用した方法も紹介しております

投稿時間:2003/02/21(Fri) 09:11
投稿者名:
URL :
タイトル:
Re^4: (続)スペース入り文字の改行
> 私の場合役職名は上に小さな字で印刷するようにしておりました。
> 住所録関係の印刷はここの駄作ソフト集にもありますので参考にして
> 下さい。
> 又、Excel&Word関係に Wordの差込印刷機能を利用した方法も紹介しております

早速ソフト集のダウンロードをさせていただきました。(これはメールで言うべきでしたか?)
解凍してEXEを開いたのですが、一昨日から取り組みだした、縦書き宛名の漢数字変換が
自動で出来るという事でかなり興味深いものを見させていただきました。ありがとうございました。
ただ、それを見るだけで、ソースファイルが出来ない自分がまだまだと改めて思いました。
ちなみに、VBで作成する事になる前はアクセス→ワードに差込印刷で作成してました。(^^;
また、疑問や質問がありましたら宜しくご指導願います。

投稿時間:2003/02/21(Fri) 09:28
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: (続)スペース入り文字の改行
> 解凍してEXEを開いたのですが、一昨日から取り組みだした、縦書き宛名の漢数字変換が
> 自動で出来るという事でかなり興味深いものを見させていただきました。ありがとうございました。
> ただ、それを見るだけで、ソースファイルが出来ない自分がまだまだと改めて思いました。

ここの逆引きヘルプの[アラビア数字を漢数字に変換する(2題)]を見て下さい。

投稿時間:2003/02/21(Fri) 15:27
投稿者名:
URL :
タイトル:
Re^6: (続)スペース入り文字の改行
> > 解凍してEXEを開いたのですが、一昨日から取り組みだした、縦書き宛名の漢数字変換が
> > 自動で出来るという事でかなり興味深いものを見させていただきました。ありがとうございました。
> > ただ、それを見るだけで、ソースファイルが出来ない自分がまだまだと改めて思いました。
>
> ここの逆引きヘルプの[アラビア数字を漢数字に変換する(2題)]を見て下さい。

すぐにお返事を頂きましてありがとうございます。
縦書き封筒、横書き封筒のアラビア文字を漢数字に変換する事を試みだして
ヘルプを参照して、1ファイル(CSVだと1行分?)ずつなら出来るのですが、
全部まとめて変換までがまだ出来ないので、もう少し弄って勉強をして、
出来るようにと思って取り組み中です。改行の時と同じで、一括で出来るのが
CSVファイルの取り込みのみなのでもう少し努力を重ねてみます。