質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • VB.NET

    942questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

  • CSV

    676questions

    CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

csvファイルから取得したTextをButtonのTextに反映させた場合の改行コード

解決済

回答 3

投稿

  • 評価
  • クリップ 1
  • VIEW 1,121

NobNishihata

score 6

VB.NET初心者です。

VB.NETのフォーム上でPowerPointプレゼンテーションを表示するアプリをVisualStudio2015を使い、
Windowsフォームアプリケーションで作っています。 

プレゼンテーションの題名を表記したボタンの並んだメニュー画面からボタンを押すとそのタイトルの
プレゼンテーション(.ppsxファイル)が立ち上がり、プレゼンテーションを閲覧できる、というシステム
です。

ボタンは50個作る必要があるので、デザイナーを使わず、実行時に、動的にコントロールを作成して
フォームに配置する方法を取っています。
この時、ButtonのTextはエクセルで作成したcsvファイルから配列で読み込み、各ボタンに割り当てる
ようにしたのですが、長いタイトルを途中改行する方法が分かりません。

・エクセルでCSVファイルを作成時にセル内改行を行って保存→テキストエディタで改行コードを
「LF」「CR」「CRLF」に変換して保存。
・CSVファイル内のテキストにテキストエディタから改行コード 「& Environment.NewLine &」
 「& Chr(13) & Chr(10) &」 「\n」等を入れて保存。

以上のやり方を試してみましたがうまくいきませんでした。
良い方法はありませんでしょうか?
よろしくお願いします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Tak1wa

    2015/08/24 12:37

    途中改行は自動で改行したいですか?決められた位置で改行したいですか?

    キャンセル

  • NobNishihata

    2015/08/24 18:45

    早速レス頂いたのに対応が遅くなり申し訳ありません。自動改行ではなく、任意の位置で改行したいです。 よろしくお願いいたします。

    キャンセル

回答 3

checkベストアンサー

0

[ 方法1 ]
改行コードを、CRLFとしてCSVに記述し、プログラムで置換すればOKです。

csvの例
1,題名CRLF1
2,題名CRLF2
:

strTitleに、題名CRLF1が入力されている場合
strTitle.Replace("CRLF", vbCrLf)


[ 方法2 ]
CSV形式に準拠したデータを正しく作成しておけば、
FileIO.TextFieldParserで、もっと簡単に読み込めます。

csvの例
1,"題名
1"
2,"題名
2"
:
このように、””で囲まれた文字は間に改行があっても、
FileIO.TextFieldParserであれば正しく読み込んでくれます。

以前の質問時の、Test()をベースにしたサンプルです。
    Public Function Test(ByVal fileName As String)
        Dim textLines As New List(Of String())

        Using csvFile As New FileIO.TextFieldParser(fileName, System.Text.Encoding.Default)
            csvFile.TextFieldType = FileIO.FieldType.Delimited
            csvFile.SetDelimiters(",")
            While Not (csvFile.EndOfData)
                Dim cols As String() = csvFile.ReadFields()
                textLines.Add(cols)
            End While
        End Using

        Dim strArr()() As String
        strArr = textLines.ToArray
        Return strArr
    End Function

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/24 19:19

    前回から引き続きご回答いただき、ありがとうございました。
    この方法で解決しました。
    ありがとうございました!

    キャンセル

0

こんにちは。

実装を見てみないとなんともですが、
まずは、ButtonはAutoSizeが既定でFalse(サイズどおりになる)なので
内容にあわせてサイズ変更するようにするところからでしょうか。
※CSVから読み込めていることは前提とします。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Button1.MinimumSize = New Size(100, 100)
    Button1.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowOnly
    Button1.AutoSize = True
    Button1.Text = "あいうえおかきくけこ" + vbCrLf + "さしすせそたちつてと"
End Sub

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/24 19:22

    Tak1waさん
    ご回答いただきありがとうございました。
    ButtonのSizeを変更するという部分、大きなヒントを頂きました。
    ありがとうございました。
    これからもよろしくお願いいたします。

    キャンセル

0

ta-kunさん、前回に引き続きありがとうございました!
ta-kunさんのコードとボタンの縦サイズを若干大きくすることで
たちどころに解決しました。
これからもよろしくお願いします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

関連した質問

同じタグがついた質問を見る

  • VB.NET

    942questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

  • CSV

    676questions

    CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。