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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

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

VB.NET

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

Q&A

解決済

3回答

2625閲覧

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

NobNishihata

総合スコア12

CSV

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

VB.NET

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

0グッド

1クリップ

投稿2015/08/24 03:02

VB.NET初心者です。

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

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

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

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

以上のやり方を試してみましたがうまくいきませんでした。
良い方法はありませんでしょうか?
よろしくお願いします。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tak1wa

2015/08/24 03:37

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

2015/08/24 09:45

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

回答3

0

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

投稿2015/08/24 10:18

NobNishihata

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

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

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

strTitleに、題名CRLF1が入力されている場合

vb.net

1strTitle.Replace("CRLF", vbCrLf)

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

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

以前の質問時の、Test()をベースにしたサンプルです。

vb.net

1 Public Function Test(ByVal fileName As String) 2 Dim textLines As New List(Of String()) 3 4 Using csvFile As New FileIO.TextFieldParser(fileName, System.Text.Encoding.Default) 5 csvFile.TextFieldType = FileIO.FieldType.Delimited 6 csvFile.SetDelimiters(",") 7 While Not (csvFile.EndOfData) 8 Dim cols As String() = csvFile.ReadFields() 9 textLines.Add(cols) 10 End While 11 End Using 12 13 Dim strArr()() As String 14 strArr = textLines.ToArray 15 Return strArr 16 End Function

投稿2015/08/24 04:58

ta-kun

総合スコア59

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NobNishihata

2015/08/24 10:19

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

0

こんにちは。

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

VB.NET

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

投稿2015/08/24 03:42

Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NobNishihata

2015/08/24 10:22

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問