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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
Msgboxで表示できる文字数の上限は939文字ですか?
Word(ワード)
-
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
エクセルVBAによりメッセージボックスを表示させた場合について
Excel(エクセル)
-
5
VBAで文字を反映させると255文字の制限になってしまいます。
Visual Basic(VBA)
-
6
フォントの大きさ
Visual Basic(VBA)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
メッセージボックスを大きくする方法
Visual Basic(VBA)
-
9
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
10
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
11
文字列型変数に1024を超えた文字列を代入した時に
Visual Basic(VBA)
-
12
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
13
UserForm1.Showでエラーになります。
工学
-
14
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
15
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
16
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
19
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
20
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのCOUNTIFが正しくカウ...
-
Excel関数「COUNTIF」で”文字”...
-
メッセージボックスで1025文字...
-
エクセルでの漢字、カタカナ、...
-
半角記号、全角記号を含む正規...
-
全角括弧と全角読点の間隔を狭...
-
文字の入力で横バー上段、中断...
-
PHPでMySQLに入力した半角スペ...
-
データ末尾の半角スペース
-
秀丸を利用して、空白から空白...
-
VBAのコマンドボタンの文字列の...
-
COBOLの改行
-
htmlspecialcharsで特定のタグ...
-
ソースコードの1行が長いとき...
-
テキストファイルから改行コー...
-
改行コード(CR/LF)の設...
-
文字列型変数に1024を超えた文...
-
PHPでjavascriptを書き出すとき...
-
mb_ereg_replaceに関して
-
マクロで半角を全角に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の入力で横バー上段、中断...
-
メッセージボックスで1025文字...
-
エクセルのCOUNTIFが正しくカウ...
-
全角括弧と全角読点の間隔を狭...
-
Excel関数「COUNTIF」で”文字”...
-
半角記号、全角記号を含む正規...
-
記号は半角と全角どちらがよい...
-
文字列中の両丸括弧を取り除くV...
-
全角英数文字が嫌われる理由を...
-
Accessの文字数を調べたい
-
エクセルでの漢字、カタカナ、...
-
Replace関数は文字数の制限ある...
-
XMLのタグ名の禁則文字
-
VBScriptである文字列に半角文...
-
半角文字と全角文字の判別の仕方
-
全角半角変換 C++/CLI
-
VBAで英数字入力チェックしたい。
-
IT企業の技術屋にとって全角英...
-
なぜインターネットでは半角カ...
-
パソコンで全角、半角文字の切...
おすすめ情報