[過去ログ] VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
152
(1): 2016/03/18(金)00:50 ID:QavJ4QpP(1/2) AAS
EXCELのVBAでインデントされたとりあえず下のようなXMLを作成したく
外部リンク[html]:blogs.yahoo.co.jp
を参考に作成してるのですが、うまく孫要素が作成できません。
どうすれば孫要素が作成できるのでしょうか。ご教示お願いします。
また何と調べればいいのかを教えていただければ幸いです。

環境 windows7  64bit と32bit両方
 Excel 2010 64bit と32bit 両方

作成したいXML(括弧は半角だとうまく書き込めないみたいなので全角にしてます)

<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<ROOT>
<TITTLE>DQ5</TITTLE>
<CHARACTER>
<PERSON>
<NAME>パパス</NAME>
<HOBBY>女装</HOBBY>
<COMMENT>ぬわーーっっ!!</COMMENT>
</PERSON>
<PERSON>
<NAME>ゲマ</NAME>
<HOBBY>メラミ</HOBBY>
<COMMENT>ほっほっほっほっ。子を思う親の気持ちは いつみても いいものですね。</COMMENT>

</PERSON>
</CHARACTER>
</ROOT>
153: 2016/03/18(金)01:48 ID:emFx7ejn(1) AAS
>>152
vba xml 生成 とかでググるといくらでもやり方はヒットすると思うけど
具体的にどんなコードのどこで行き詰まってるのか書いてくれないとアドバイスしようがない
154
(1): 2016/03/18(金)11:47 ID:QavJ4QpP(2/2) AAS
<CHARACTER>が</CHARACTER>で作成されてしまい、閉じてくれません。また<PERSON>などが孫要素になってくれません。
コードはこんな感じです。
外部リンク:pastebin.com

作成されるXMLは↓です。
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<ROOT>
<TITTLE>DQ5</TITTLE>
<CHARACTER/>
<PERSON/>
<NAME>パパス</NAME>
<HOBBY>女装</HOBBY>
<COMMENT>ぬわーーっっ!!</COMMENT>
<PERSON/>
<NAME>ゲマ</NAME>
<HOBBY>メラミ</HOBBY>
<COMMENT>ほっほっほっほっ。子を思う親の気持ちは いつみても いいものですね。</COMMENT>
</ROOT>
155
(1): 2016/03/18(金)21:10 ID:Sdu3bujA(1) AAS
>>154
> 'ノードとして子ども・孫の要素を追加
>Set elem2 = rootelem.appendChild(myxml.createElement("CHARACTER"))
> Set elem2 = rootelem.appendChild(myxml.createElement("PERSON"))

> 'ノードとしてひ孫の要素を追加
>Set node = rootelem.appendChild(myxml.createNode("element", "NAME", ""))
> node.Text = "パパス"

rootelemにしか子供追加してないから、孫、ひ孫が生成されないのは当然な気がする
追加した子要素に子供を追加してやらなくちゃ…
試してないけどこんな感じ?

'ノードとして子ども・孫の要素を追加
Set elem2 = rootelem.appendChild(myxml.createElement("CHARACTER"))
Set elem2 = elem2.appendChild(myxml.createElement("PERSON"))

'ノードとしてひ孫の要素を追加
Set node = elem2.appendChild(myxml.createNode("element", "NAME", ""))
node.Text = "パパス"
156
(3): 2016/03/19(土)11:15 ID:LxdobWB2(1/2) AAS
ThisWorkbook.Save
で「指定したディメンションは、このグラフの種類では無効です。」のエラー発生。
エラーが出るときと出ないときがある。

VBAでグラフを操作している部分もあるが、それとは無関係と思われるSaveでこのエラーに戸惑っています。

↓このサイトで、SaveAsで存在しないパスを指定し同様のエラーが出た事例は見つかりましたが私はパス指定していません。
外部リンク:yaplog.jp

エラー回避する方法を教えて下さい。
157: 156 2016/03/19(土)11:26 ID:LxdobWB2(2/2) AAS
>>156はエクセルの話です
win7, office2010
158: 2016/03/20(日)06:56 ID:XolQD74Z(1) AAS
どなたか>>156わかりませんか?
159
(1): 2016/03/20(日)07:11 ID:P5LbtOo8(1) AAS
VBA内でセル指定をするときにシート名を明記しないと
そのセルがアクティブシートのセルになってしまってエラーが出ることがあるけど

VBAでグラフを作成するプログラムを作成していますが、エラーがでます。エラーの... - Yahoo!知恵袋
外部リンク:detail.chiebukuro.yahoo.co.jp

ぷぎえもん日記 VBA:実行時エラー1004グラフを作る時のエラーについて
外部リンク:pugiemonn.blog6.fc2.com

その辺は大丈夫?
160: 2016/03/20(日)14:30 ID:U/mbzow+(1) AAS
>>155
うまく行き作りたいものが作れました。ありがとうございます。
161: 2016/03/21(月)00:33 ID:RmxeJW4x(1/2) AAS
>>159
レスありがとうございます。
今出先なので明日帰宅してから確認してみます。
162: 2016/03/21(月)00:35 ID:RmxeJW4x(2/2) AAS
あ、書き込めた。規制かかっててレスできず申し訳ないです。
163
(1): 2016/03/24(木)09:23 ID:Y45L/A5m(1) AAS
既存のブックに入れているマクロは正常動作しているんだけど、2,3日以前から作った
ブックは
オートメーションエラーです。
例外が発生しました。

ってエラーですぐ落ちてしまうんだけど、これって何が原因なんですかね。
(OS Win7Home excel2010)

なんせ、
Sub test()
MsgBox "test"
End Sub
ってだけのでも同じエラーで落ちてしまうんで┐(´∀`)┌
ちなみにウィルス対策はAVGでチェックかけて異常なしではありました

画像リンク

164: 2016/03/24(木)12:50 ID:FJvNCHp3(1) AAS
>>156
「vba 指定したディメンションは、このグラフの種類では無効です。」で検索!

>>163
「vba オートメーションエラー」で検索!
165
(3): 2016/04/09(土)01:33 ID:8VJ1WNjN(1/5) AAS
Declare 文でDllを指定するとき、絶対パスを指定するのとしないので挙動が変わるなんてことありますかね?

パスの通ったフォルダにDllを置きDeclare文にはパスを書かない、という状態で何度テストしても失敗する(結果がおかしい)ので、
もしやと思って絶対パスを指定してみたら成功しました。何度やっても同じです。

念のため他のフォルダに同名のDllがないか確認しましたが、そんなものはありませんでした。

Window7、Excel2010(64bit)です。
166: kio [kio@gmail.com] 2016/04/09(土)09:27 ID:OaMx2gZN(1) AAS
下記プログラムでデータ貼り付け可能ですが、
Range(
167
(2): 2016/04/09(土)10:55 ID:uD9Ltjj7(1/2) AAS
>>165
なんで大事な部分を書かずに濁すの?
168
(1): 2016/04/09(土)11:27 ID:mXQNErhc(1/2) AAS
>>167
大事な部分って?
169
(1): 2016/04/09(土)11:49 ID:8+AE4+J9(1) AAS
コードじゃね?
170
(1): 2016/04/09(土)12:00 ID:YC7vrxdl(1/2) AAS
どんな dll 使って、
どう失敗するのか

とかじゃね?
171: 2016/04/09(土)12:35 ID:lZD29UWG(1) AAS
性別と容姿じゃね?
172
(1): 2016/04/09(土)15:25 ID:8VJ1WNjN(2/5) AAS
>>167-170

DLLはこんな感じで
Declare PtrSafe Function funcABC Lib "ABC.dll" (ByVal n As Long, ByRef v As Variant) As Long

本来1が返ってくるべきところに0が返ってくるんです。
だけど、〜 Lib "C:\tmp\ABC.dll" 〜 とすると、ちゃんと1が返ってくる。

どちらの場合もDLL名を変えると「ファイルが見つかりません」という実行時エラーになるので、同じDLLファイルを
指しいてるのは間違いないと思います。
173
(1): 2016/04/09(土)16:35 ID:kbPPFUQM(1) AAS
>>172
そんなの "ABC.dll" の作り次第だろ
作者に聞けよ
dll のパス取得して何かしてるのかもしれないし
外部リンク[html]:frog.raindrop.jp
174: 2016/04/09(土)16:55 ID:DA1syyI4(1/2) AAS
>念のため他のフォルダに同名のDllがないか確認しましたが、そんなものはありませんでした。
限りなくこれが怪しいと思うんだが
175
(1): 2016/04/09(土)16:57 ID:XGWfr4Pw(1/2) AAS
>>165
同名のdllが無いことをどうやって確認した?
176
(3): 2016/04/09(土)18:20 ID:uD9Ltjj7(2/2) AAS
>>165
挙動が変わることはあります。
おわり
177
(1): 2016/04/09(土)18:32 ID:8VJ1WNjN(3/5) AAS
>>175
パスが通っている全フォルダとカレントフォルダからの目視です。

環境変数(PATH)をまず確認して、
kernel32.dllにあるAPI 「GetEnvironmentVariableA」 に引数"PATH"を渡して出てきたフォルダを対象にしました。

問題のfuncABC も GetEnvironmentVariableA も同じVBAから発行しています。
178
(1): 2016/04/09(土)18:41 ID:DA1syyI4(2/2) AAS
カレントフォルダをどうやって確認したかとか
システムディレクトリにdllがないかとか

まあ、確認漏れ自体はいっぱいありそうだな
179
(2): 2016/04/09(土)18:46 ID:8VJ1WNjN(4/5) AAS
>>178
C:\windowsやC:\Program Files、C:\Program Files (x86)は入ってますよ。
目視も検索フィルタにとりあえず *.dll で全DLLを出してからやっています。

>>176
マジですか...
180
(2): 2016/04/09(土)19:45 ID:mXQNErhc(2/2) AAS
>>179
本当にひとつしかないならあり得ない挙動だと思うけど。
dllの内容を明かしてみな。
181
(1): 2016/04/09(土)19:57 ID:zSVIlalC(1) AAS
Windows が使用する DLL 検索パス

1.実行中のプロセスの実行形式モジュールがあるフォルダー。
2.現在のフォルダー。
3.Windows システム フォルダー。このフォルダーへのパスは、GetSystemDirectory 関数が取得します。
4.Windows ディレクトリ。このフォルダーへのパスは、GetWindowsDirectory 関数が取得します。
5.環境変数 PATH 内に記述されたフォルダー。

外部リンク[aspx]:msdn.microsoft.com
1-
あと 821 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.023s