データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
こんばんは。
VBAのコードやどのようにPDF化しているのかが分からないので何とも言えないのですが、
セルに直接入力した場合は問題ないのであれば、下記コードのように改行をvbLfに
置換してみてはいかがでしょうか。
Sheet1.Range("A1").Value = Replace(Me.TextBox1.Text, vbCrLf, vbLf)
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
初めて投稿させていただきます。
Win7上のExcel2007,2010で、VBAのユーザーフォームのテキストボックスから文章を書き込んで、
PDFにする書類をつくっています。
テキストボックスは複数行を可能にして、Enterでの改行を出来るようにしているくらいです。
セルに直接打ち込んだ文章は問題ないのですが、テキストボックスから書き込んだ文章の箇所で問題があります。
シートをPDFに保存すると、全角文字で改行しているところは問題ないんですが、
半角英数字で改行されたところに「□」が入ります、改行で行を開けたところにも「□」が入ります。
印刷はなんの問題もありません。
イメージはこんな感じです↓
--------------------
あいう
123□
abc□
□
あいう
--------------------
半角英数字の後に全角のスペースを入れると、「□」が入らなくなるので、
とりあえずそれで対処していますが、最終的に今作っているブックは数か所に配布してかなりの人数が使うので、
なんとか解決策を探しています。
どなたかお分かりになる方いらっしゃませんか?
よろしくお願いします。
ちなみに、XP上のExcel2007ではもっとひどく、全角半角関係なくすべての改行箇所にこちらは「・」が入ります。
こちらはもはや論外です。。。
データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
こんばんは。
VBAのコードやどのようにPDF化しているのかが分からないので何とも言えないのですが、
セルに直接入力した場合は問題ないのであれば、下記コードのように改行をvbLfに
置換してみてはいかがでしょうか。
Sheet1.Range("A1").Value = Replace(Me.TextBox1.Text, vbCrLf, vbLf)
きぬあさ さん、アドバイスありがとうございます。
Kmayuzumi さん、こんにちは。
きぬあさ さんからいただいたアドバイスが参考になったようですね。
同じような問題でお悩みの方にも、こちらをご参考いただければと思い今回は私の方で \[回答としてマーク\] をさせていただきました。
Kmayuzumi さんの方でも参考になったと思ったら、次回は [回答としてマーク] をつけてみてくださいね。
今後も Answers をよろしくお願いします。
早々の返信ありがとうございます。
ちょっと、テストしましたが見事に解決しそうです。
自分が書いているユーザーフォームのコードは、以下の感じです。
Private Sub UserForm_Initialize()
With TextBox1
.MultiLine = True
.EnterKeyBehavior = True
.IMEMode = fmIMEModeOn
.SetFocus
End With
TextBox1.Value = ActiveCell.Value
End Sub
Private Sub CommandButton1_Click()
’ActiveCell.Value = TextBox1.Value
ActiveCell.Value = Replace(Me.TextBox1.Text, vbCrLf, vbLf)
Unload Me
ActiveCell.Offset(rowoffset:=0, columnoffset:=1).Select
End Sub
PDF化は、Excelが持っているPDF保存をそのまま利用して以下のように書いています。
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
buf & "" & fname, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
改行コードに問題があるとは思っていましたが、こんな方法で改行コードを置換できるとは初めて知りました。
自分はVBA初心者で、今回かなり頑張って作りましたが、このPDFの問題だけは分かりませんでした。
かなりの数のテキストボックスがあるので、これから頑張って編集していきたいと思います。
ほんとうにありがとうございました。