- ベストアンサー
文字列領域が不足しています
vbaです。 原因は不明ですが myStr = Replace(myStr, Chr(10), "") の時に 「実行時エラー 14 文字列領域が不足しています。」 と言うエラーが発生するので 対処法として myStr = Replace(myStr, Chr(10), "", , , vbBinaryCompare) としているのですが、 tmp = Split(myStr, Chr(10)) でも同じように 「実行時エラー 14 文字列領域が不足しています。」 が発生するのですが 対処法は有りますか?
- xmbscnplflzbf
- お礼率76% (250/325)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Mystr に入れる文字数はどれくらいあるのでしょうか? すごくおおきいのでは? 元になる文字列を小さく分けてみて、どうですか?
その他の回答 (1)
- m3_maki
- ベストアンサー率64% (295/459)
AC2007, 2010 の Split, InStr関数のバグ? http://hatenachips.blog34.fc2.com/blog-entry-266.html 上記では Split 関数でも vbBinaryCompare で解決しているようですが。
お礼
ありがとうございます。
関連するQ&A
- 実行時エラー 14 文字列領域が不足しています。
一度変数に格納した値を置換しようとしたら、 実行時エラー 14 文字列領域が不足しています。 となりました。 変数は、String型で宣言しています。 myStr = rs("回答文") myStr = Replace(myStr, Chr(10), "") のように、一度myStrに格納した変数の格納を取ろうと思い、 Replaceで置換しようとすると、エラーが発生します。 myStr = rs("回答文") で myStrに格納できた時点で、容量は足りているはずだし、 Replace(myStr, Chr(10), "")で置換することによって、更に容量を減らしているのに なぜエラーになるのでしょうか? アクセスvbaです。
- ベストアンサー
- オフィス系ソフト
- vba 実行時エラー14 文字列領域が不足していま
Dim moji As String Dim myAll As Variant moji = "<" Set objMSXML2 = CreateObject("MSXML2.XMLHTTP") objMSXML2.Open "GET", "http://○○.html", False objMSXML2.Send myAll = objMSXML2.responseText myAll = Replace(myAll, Chr(10), "") と言うコードがあるのですが とあるサイトで、 myAll = Replace(myAll, Chr(10), "") の部分で、 実行時エラー14 文字列領域が不足しています。 となります。 どういう意味のエラーなのでしょうか? 「文字列領域が不足」と言う日本語がわかりません。 ちなみに myAll = Replace(myAll, Chr(13), "") とすると、問題なくコードが通ります。
- ベストアンサー
- Visual Basic
- MSXML2 実行時エラー14 Replace
MSXML2でソースを抜き出して改行を置換しようとすると Set objIE = CreateObject("MSXML2.XMLHTTP") objIE.Open "GET", "http://" objIE.send myStr = objIE.responseText myStr = Replace(myStr, Chr(10), "") 実行時エラー14 文字列領域が不足しています。 と出る時があります。 これは変数に格納した文字が多すぎるのでしょうか? でも変数に格納できてるけど、置換ができないって事があるのでしょうか?
- ベストアンサー
- Visual Basic
- vba 改行 「・・」が置換できない
シートの文字を取得して、削除したい文字を置換で消そうと思うのですが、 変数に格納した値にマウスカーソルを充てると、「・・」と表示され、置換できません。 ?mystr とすると、 改行が返ります。 mystr = Replace(mystr, Chr(10), "") mystr = Replace(mystr, Chr(13), "") mystr = Replace(mystr, vbCr, "") mystr = Replace(mystr, vbCrLf, "") mystr = Replace(mystr, Chr(10) & Chr(13), "") mystr = Replace(mystr, Chr(10) + Chr(13), "") で置換を試みましたが、全部だめです。 Debug.Print Asc(mystr) とすると、9が返ります。 この文字はどうやったら置換で消せるのでしょうか?
- ベストアンサー
- オフィス系ソフト
- エクセルVBAの文字列操作について2
エクセルVBAの文字列操作について2 以前、こちらでご教授いただいた以下のような文字列操作方法があります。 この方法ですと例えば[1-3]から3をひいた際に"1-2"と表示されますが 今回は連続する数字が2つの場合は1,2と表示させ3つ以上の場合は-でつないで表示させたいと思います。 一週間ほど考えたのですが解決できませんでした。 どなたかご協力お願いいたします。 質問内容 例えば、[1-10,15-20,22-38]と入っているセルがあるとします。 このセルに数を足したり引いたりしたいのです。 例えば、このセルから”5”を引いて[1-4,6-10,15-20,22-38]と表示したり、 "21"を足して[1-10,15-38]と表示したい。 いただいたご回答 A1 セル に「1-10,12,15-20,22-38」と入力されているとして、別のセルに =NUMORDER(A1,-5) と入力すると「1-4,6-10,12,15-20,22-38」と表示し =NUMORDER(A1,21) と入力すると「1-10,12,15-38」と表示します。 1つ目の引数には「セル番地」または「文字列」を、2つ目の引数には「1 ~ 99 までの整数」をお入れください。 Function NUMORDER(myStr As Variant, num As Integer) As String Dim i As Long Dim j As Double Dim myNum As Variant '文字列中の スペース を削除 myStr = Replace(myStr, " ", "") '文字列の前後に「0」・「100」を挿入 Select Case Left(myStr, 2) Case "1,", "1-" myStr = myStr & ",100" Case Else myStr = "0," & myStr & ",100" End Select '文字列を カンマ で分割し、ハイフン の区間の数字を補完する myStr = Split(myStr, ",") For i = 0 To UBound(myStr) If InStr(myStr(i), "-") > 0 Then myNum = Split(myStr(i), "-") myStr(i) = "" For j = myNum(0) To myNum(1) myStr(i) = myStr(i) & " " & j Next myStr(i) = Trim(myStr(i)) End If Next '欠番に「●」を入れ、「数を足したり引いたり」する myStr = Split(Join(myStr)) For i = 0 To UBound(myStr) - 1 myStr(i) = myStr(i) & Application.WorksheetFunction.Rept(" ●", myStr(i + 1) - myStr(i) - 1) Next myStr = Split(Join(myStr)) If num > 0 Then myStr(num - myStr(0)) = num Else myStr(-num - myStr(0)) = "●" End If '前後に挿入した「0」・「100」を削除 myStr = Replace(Join(myStr), " 100", "") If Left(myStr, 2) = "0 " Then myStr = Right(myStr, Len(myStr) - 2) '連続数字を ハイフン で繋ぐ myStr = Split(myStr, "●") For i = 0 To UBound(myStr) If myStr(i) <> " " Then myNum = Split(Trim(myStr(i))) If UBound(myNum) > 0 Then myStr(i) = myNum(0) & "-" & myNum(UBound(myNum)) End If End If Next 'カンマ で文字列に分割する myStr = Application.Trim(Join(myStr)) NUMORDER = Replace(myStr, " ", ",") End Function
- 締切済み
- オフィス系ソフト
- Chr(13)とChr(10)の違いは?
myStr = Replace(myStr, Chr(13), "") や myStr = Replace(myStr, Chr(10), "") で、改行を置換しているのですが、どちらかでも改行できる時や どちらかじゃないと改行できない時があります。 そもそもChr(13)とChr(10)の違いはなんでしょう? どちらも改行ですよね? 何が違うのでしょう?
- ベストアンサー
- オフィス系ソフト
- ディスク領域不足の対応
VistaのCドライブディスクのドライブの領域を空けたいのですが、古いファイルや不要なファイルの見分け方がよくわかりません。 例えば「筆まめのアンインストール」を行おうとするとディスクの領域不足・・のエラーが出たりします。 更新プログラムのアンインストールもどれを実行していいのか分かりません。 アンインストールで領域不足の解消方法について教えてください。
- 締切済み
- ハードウェア・サーバー
- レジストリー領域不足が表示される
困っています。わかる方がいらっしゃいましたら 助言願います 当方OS WIN XPを使用しているのですが、「レジストリの領域不足の警告」が起動時に出ています。このエラーはWindows XPとWindows Server 2003の場合、レジストリのサイズ制限がなくなったため、レジストリの領域不足は起こらない。とされて居るのに出ています。 OS 2000と違いレジストリー領域を変更する設定も用意されて無く、 困っています。 レジストリーのクリーニングを実行後、暫くは出なくなって居ましたが 再び出るようになっています。ウィルスを疑いましたが調べた結果、それもありませんでした。
- 締切済み
- Windows XP
- マクロで「"」を文字として扱う方法
変数内文字列に含まれる " の文字を検索する時InStrRev(myStr,""")ではエラーになります。 この場合はどう記述すれば良いですか?
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます。