http://okwave.jp/qa/q4890392.html
MsgBox関数は半角で最大1024文字しか扱うことができないようです。
これ以上の文字数を扱いたいのですが
恐らくWindows APIを使えばできるのではないかと考えました。
APIを使った方法は
http://www.ne.jp/asahi/hishidama/home/tech/excel …
http://soudan1.biglobe.ne.jp/qa6488258.html
この辺りに書かれてあります。
それで
Declare Function MessageBoxPtr Lib "user32.dll" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal text As Long, ByVal caption As Long, ByVal nType As Integer) As Integer
Sub aaa()
Dim text() As Byte
Dim caption() As Byte
Dim ret As Integer
caption() = StrConv("dd7優勝a", vbFromUnicode)
text() = StrConv("b日本aaa", vbFromUnicode)
ret = MessageBoxPtr(0, VarPtr(text(0)), VarPtr(caption(0)), vbOKOnly)
End Sub
を実行してみたのですが
なぜか全角文字と半角文字を両方含んでいると
文字化けしてしまいます。
しかもなぜか実行するたびにその文字化けが変化していきます。
例えば以下のようです。
b日本aaawPAセ
b日本aaaユ君・
優勝{aaaユ君・
b日本aaa蛹N・
VarPtrがメモリのアドレスを取得する関数なそうなのですが
これがリセットされていないことが原因なのでしょうか?
一体どうすれば正常に取得できるか教えていただけないでしょうか?
ちなみに環境はWin8 Excel2010です。
よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
MessageBoxPrt が、半角・全角混在で、できないなら、元のMessageBox でやってみたらいかがですか?
Private Declare Function MessageBox Lib "User32.dll" Alias "MessageBoxA" ( _
ByVal hWnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal uType As Long) As Integer
と書いて気が付きました。#1様の示されたリンク先と同じですよね。
ただ、Form などでTextBox に、スクロールを付けて使ったほうが便利そうです。
No.1
- 回答日時:
こちらの
https://oshiete.goo.ne.jp/qa/4876776.html
#4さんの回答では?
試してみたところ、
lpText = "テスト" を
lpText = "始め" & String(1200, "@") & "最後"
では『始め』の後で改行?が入りました
"@" を "@" と全角にすると消える?
残念ながら、当方これ以上わかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Msgboxで表示できる文字数の上限は939文字ですか?
Word(ワード)
-
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
文字列型変数に1024を超えた文字列を代入した時に
Visual Basic(VBA)
-
-
4
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
5
エクセルVBAによりメッセージボックスを表示させた場合について
Excel(エクセル)
-
6
VBAで文字を反映させると255文字の制限になってしまいます。
Visual Basic(VBA)
-
7
フォントの大きさ
Visual Basic(VBA)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
ウォッチ式の文字数制限について
Visual Basic(VBA)
-
11
メッセージボックスを大きくする方法
Visual Basic(VBA)
-
12
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
17
VBAでCSVファイルが使用中かどうかの確認
Visual Basic(VBA)
-
18
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
19
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
20
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
エクセルのCOUNTIFが正しくカウ...
-
VBScriptである文字列に半角文...
-
半角記号、全角記号を含む正規...
-
全角括弧と全角読点の間隔を狭...
-
PHPでMySQLに入力した半角スペ...
-
【Excel VBA】A列の全角・半角...
-
エスケープ文字にstr_replaceが...
-
Excel関数「COUNTIF」で”文字”...
-
エクセルでの漢字、カタカナ、...
-
VBAのリストボックスでの文字化け
-
記号は半角と全角どちらがよい...
-
php言語の全角入力のチェック方...
-
phpの正規表現でカタカナ+スペ...
-
特定の文字を簡単な操作で半角...
-
マクロで半角・全角スペースと...
-
半角英数字のみを受け付ける入...
-
データ末尾の半角スペース
-
=code(" ") で値が160となる文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
Excel関数「COUNTIF」で”文字”...
-
エクセルのCOUNTIFが正しくカウ...
-
全角括弧と全角読点の間隔を狭...
-
半角記号、全角記号を含む正規...
-
特定の文字を簡単な操作で半角...
-
全角英数文字が嫌われる理由を...
-
VBAで英数字入力チェックしたい。
-
エクセルでの漢字、カタカナ、...
-
全角半角変換 C++/CLI
-
XMLのタグ名の禁則文字
-
VBScriptである文字列に半角文...
-
記号は半角と全角どちらがよい...
-
文字列中の両丸括弧を取り除くV...
-
パソコンで全角、半角文字の切...
-
HTML5の「pattern」属性で前後...
-
Replace関数は文字数の制限ある...
-
Excel2002 一桁数字だけ全角に置換
-
エスケープ文字にstr_replaceが...
おすすめ情報