<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss"  xmlns:media="http://search.yahoo.com/mrss/">
<channel>
	<title><![CDATA[SWJUG-RING: SW2021→SW2026バージョンアップ後のAPI不具合]]></title>
	<link>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88</link>
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88</guid>
	<pubDate>Tue, 28 Apr 2026 16:19:30 +0900</pubDate>
	<link>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88</link>
	<title><![CDATA[SW2021→SW2026バージョンアップ後のAPI不具合]]></title>
	<description><![CDATA[<p>久しぶりの投稿になります。<br /><br />Assemblyと構成部品に、プロパティから取得した文字を付加して<br />プロパティより取得した文字列で自動作成したフォルダに保存するAPIですが、<br />SW2021&rarr;SW2026にバージョンアップ後、自動作成フォルダに構成部品が保存され<br />Assemblyも保存されますが、構成部品の参照が外れ変更前の構成部品が書き換わりません。。<br />SW2021では、マクロ実行後、デザインツリーの構成部品名が書き換わる様子も目視できてましたが、<br />SW2026では、なにも起こらないで、終了してしまいます。<br /><br />多分、実行コマンドが変更？になってると思われますが、探し出せてません。<br /><br />どなたか分かる方おられましたら、ご教示いただけると幸いです。<br /><br /><br /><br />'アセンブリファイルと参照部品にプレフィックスつけて保存<br /><br />ElseIf flag = 3 Then<br /><br />Dim swAssy As SldWorks.AssemblyDoc<br />Dim swConfig As SldWorks.Configuration<br />Dim swRootComp As SldWorks.Component<br />Dim bRet As Boolean<br /><br />Set swConfig = swModel.GetActiveConfiguration<br />Set swRootComp = swConfig.GetRootComponent<br /><br />Dim Children As Variant<br />Children = swRootComp.GetChildren<br /><br />Dim i As Long<br />For i = 0 To UBound(Children)<br /><br />&nbsp; Dim swComp As Component2<br />&nbsp; Set swComp = Children(i)<br />&nbsp;&nbsp;<br />&nbsp; Debug.Print swComp.Name2 '"Name " + i + ": " +<br />&nbsp;&nbsp;<br />&nbsp; bRet = swComp.Select(False) 'Append = false<br />&nbsp; &nbsp;&nbsp;<br />&nbsp; '現在の構成部品名を読み込み<br />&nbsp; Dim OldName As String<br />&nbsp; OldName = swComp.Name2<br />&nbsp;&nbsp;<br />&nbsp; 'ファイル名の子NO確認<br />&nbsp; Dim j As Long<br />&nbsp; j = InStrRev(OldName, "-")<br />&nbsp; Dim txt As String<br />&nbsp; txt = Mid(OldName, j)<br />&nbsp;&nbsp;<br />&nbsp; '子番号置換（削除）<br />&nbsp; OldName = Replace(OldName, txt, "")<br />&nbsp;&nbsp;<br />&nbsp; '取得した構成部品名の左(先頭)から4文字取得<br />&nbsp; Dim ChangeName As String<br />&nbsp; ChangeName = OldName<br />&nbsp; ChangeName = Left(ChangeName, 4)<br />&nbsp; Debug.Print ChangeName<br />&nbsp;<br />&nbsp; '取得した構成部品の左4文字が数字だった場合実行<br />&nbsp; If IsNumeric(ChangeName) = True Then<br />&nbsp; OldName = Replace(OldName, ChangeName &amp; "_", "")<br />&nbsp; End If<br />&nbsp; Debug.Print OldName<br />&nbsp;&nbsp;<br />&nbsp; '現在の構成部品名に設備NOを追加<br />&nbsp; Dim NewName As String<br />&nbsp; NewName = rValOut1 &amp; rValOut2 &amp; "_" &amp; OldName<br />&nbsp;&nbsp;<br />&nbsp; '構成部品名書込<br />&nbsp; swComp.Name2 = NewName<br />&nbsp; Debug.Print NewName<br />&nbsp; If InStr(OldName, rValOut1) = 0 Then<br />&nbsp;&nbsp;<br />&nbsp; NewName = fPath1 &amp; "\" &amp; NewName &amp; ".SLDPRT"<br />&nbsp; fPath = NewName<br />&nbsp; Set swModel = swComp.GetModelDoc2<br />&nbsp; Set swExt = swModel.Extension<br />&nbsp;<br />&nbsp; boolstatus = swExt.SaveAs(fPath, 0, Options, Nothing, errors, warnings)<br />&nbsp;&nbsp;<br />&nbsp; End If<br /><br />Next i<br /><br /><br />よろしくお願いします。</p>]]></description>
	<dc:creator>福谷勇時</dc:creator>
</item>
<item>
	<guid isPermaLink='true'>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88#item-annotation-238410</guid>
	<pubDate>Fri, 08 May 2026 20:35:11 +0900</pubDate>
	<link>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88#item-annotation-238410</link>
	<title><![CDATA[福谷勇時 さんが付けたコメント]]></title>
	<description><![CDATA[<p>すみません。ChatGPTに丸投げし修正してもらいました。<br>恐ろしい時代ですね。。数回のやりとりで脆弱箇所含め<br>2026版APIに修正できました。</p>
<p>褒めた後のチャッピー返答と修正マクロです。</p>
<p><br>やりましたね&hellip;！<br> これはかなり厄介なSOLIDWORKS2026移行問題でした。</p>
<p>特に今回ハマっていたのは、</p>
<ul>
<li><code>FileCopy</code> 不可</li>
<li><code>ReplaceComponents2</code> 不安定</li>
<li><code>Name2</code> が実質使えない</li>
<li><code>SaveAs</code> の仕様変更</li>
<li><code>swComp</code> が置換後に無効化</li>
<li>軽量モード問題</li>
</ul>
<p>この辺が全部同時発生していたので、2021コードが2026で壊れる典型パターンでした。</p>
<p>最終的に安定したポイントは：</p>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>&nbsp;</div>
<div>
<div>
<div>
<div id="code-block-viewer" dir="ltr">
<div>
<pre><code><span>SaveAs3 + swSaveAsOptions_Copy</span><br><span>&darr;</span><br><span>Select4</span><br><span>&darr;</span><br><span>ReplaceComponents</span><br><span>&darr;</span><br><span>swComp再取得</span><br><span>&darr;</span><br><span>RenameDocument</span><br><span>&darr;</span><br><span>Rebuild</span></code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>&nbsp;</div>
</div>
</div>
</div>
<p>この順番です。</p>
<p>これで2026系でもかなり安定します。</p>
<p>あと今後もし機能追加するなら、<br> 次に問題になりやすいのは：</p>
<ul>
<li>仮想部品</li>
<li>Toolbox部品</li>
<li>SpeedPak</li>
<li>抑制部品</li>
<li>サブアセンブリ再帰</li>
<li>図面参照更新</li>
</ul>
<p>この辺です。</p>
<p>特にサブアセンブリ対応するなら、<br> 今の <code>GetChildren</code> 1階層だけでは不足するので、<br> 再帰処理化するとかなり強いマクロになります。<br><br></p>
<p>以下、修正マクロです<br><br>Dim swApp&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As SldWorks.SldWorks<br>Dim swModel&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As SldWorks.ModelDoc2<br>Dim swModelDoc&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As SldWorks.ModelDoc2<br>Dim swExt&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As SldWorks.ModelDocExtension<br><br>Dim Part&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As SldWorks.ModelDoc2<br>Dim Assem&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As SldWorks.ModelDoc2<br><br>Dim Doctype&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Long<br>Public flag&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Integer<br>Dim boolstatus&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Boolean<br>Dim longstatus&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Long<br>Dim longwarnings&nbsp; &nbsp; &nbsp; &nbsp; As Long<br><br>Sub main()<br><br>&nbsp; &nbsp; On Error GoTo ERR_HANDLER<br><br>&nbsp; &nbsp; '==========================================<br>&nbsp; &nbsp; ' 初期化<br>&nbsp; &nbsp; '==========================================<br><br>&nbsp; &nbsp; flag = 0<br><br>&nbsp; &nbsp; Set swModel = Nothing<br>&nbsp; &nbsp; Set swExt = Nothing<br>&nbsp; &nbsp; Set Part = Nothing<br>&nbsp; &nbsp; Set Assem = Nothing<br><br>&nbsp; &nbsp; Set swApp = Application.SldWorks<br>&nbsp; &nbsp; Set swModel = swApp.ActiveDoc<br><br>&nbsp; &nbsp; If swModel Is Nothing Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "ﾌｧｲﾙが開かれてません" &amp; vbCrLf &amp; _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"ファイルを開きマクロ実行して下さい", vbCritical<br><br>&nbsp; &nbsp; &nbsp; &nbsp; Exit Sub<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; Doctype = swModel.GetType<br><br>&nbsp; &nbsp; If Doctype = swDocPART Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; Set Part = swModel<br><br>&nbsp; &nbsp; ElseIf Doctype = swDocASSEMBLY Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; UserForm1.Show<br><br>&nbsp; &nbsp; &nbsp; &nbsp; If flag = 5 Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; flag = 0<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MsgBox "最初からやり直して下さい", vbInformation<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Exit Sub<br><br>&nbsp; &nbsp; &nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; &nbsp; &nbsp; Set Assem = swModel<br><br>&nbsp; &nbsp; Else<br><br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "部品orｱｾﾝﾌﾞﾘﾌｧｲﾙを選択して下さい" &amp; vbCrLf &amp; _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"選択後マクロ実行して下さい", vbInformation<br><br>&nbsp; &nbsp; &nbsp; &nbsp; Exit Sub<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; '==================================================<br>&nbsp; &nbsp; ' 保存先選択<br>&nbsp; &nbsp; '==================================================<br><br>&nbsp; &nbsp; Dim objshell&nbsp; &nbsp; &nbsp; &nbsp;As Object<br>&nbsp; &nbsp; Dim objFolder&nbsp; &nbsp; &nbsp; As Object<br>&nbsp; &nbsp; Dim BrowseFolder&nbsp; &nbsp;As String<br>&nbsp; &nbsp; Dim PathName&nbsp; &nbsp; &nbsp; &nbsp;As String<br><br>&nbsp; &nbsp; Set objshell = CreateObject("Shell.Application")<br><br>&nbsp; &nbsp; Set objFolder = objshell.BrowseForFolder( _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "保存先フォルダを選択してください。", _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;H1, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0)<br><br>&nbsp; &nbsp; If objFolder Is Nothing Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "キャンセルしました", vbInformation<br><br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo FINISH<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; BrowseFolder = objFolder.Self.Path<br><br>&nbsp; &nbsp; Set objFolder = Nothing<br>&nbsp; &nbsp; Set objshell = Nothing<br><br>&nbsp; &nbsp; PathName = Right(BrowseFolder, 6)<br><br>&nbsp; &nbsp; '==================================================<br>&nbsp; &nbsp; ' 保存確認<br>&nbsp; &nbsp; '==================================================<br><br>&nbsp; &nbsp; Dim rc As VbMsgBoxResult<br><br>&nbsp; &nbsp; rc = MsgBox("保存してもよろしいですか？", _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vbYesNoCancel + vbInformation, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "保存確認")<br><br>&nbsp; &nbsp; If rc &lt;&gt; vbYes Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "キャンセルしました", vbInformation<br><br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo FINISH<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; '==================================================<br>&nbsp; &nbsp; ' Extension取得<br>&nbsp; &nbsp; '==================================================<br><br>&nbsp; &nbsp; If Doctype = swDocPART Then<br>&nbsp; &nbsp; &nbsp; &nbsp; Set swExt = Part.Extension<br>&nbsp; &nbsp; Else<br>&nbsp; &nbsp; &nbsp; &nbsp; Set swExt = Assem.Extension<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; '==================================================<br>&nbsp; &nbsp; ' プロパティ取得<br>&nbsp; &nbsp; '==================================================<br><br>&nbsp; &nbsp; Dim swPropMgr&nbsp; &nbsp; &nbsp; As CustomPropertyManager<br>&nbsp; &nbsp; Dim config&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Configuration<br><br>&nbsp; &nbsp; Dim ValOut&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As String<br>&nbsp; &nbsp; Dim rValOut&nbsp; &nbsp; &nbsp; &nbsp; As String<br><br>&nbsp; &nbsp; Dim ValOut1&nbsp; &nbsp; &nbsp; &nbsp; As String<br>&nbsp; &nbsp; Dim rValOut1&nbsp; &nbsp; &nbsp; &nbsp;As String<br><br>&nbsp; &nbsp; Dim ValOut2&nbsp; &nbsp; &nbsp; &nbsp; As String<br>&nbsp; &nbsp; Dim rValOut2&nbsp; &nbsp; &nbsp; &nbsp;As String<br><br>&nbsp; &nbsp; Dim ValOut3&nbsp; &nbsp; &nbsp; &nbsp; As String<br>&nbsp; &nbsp; Dim rValOut3&nbsp; &nbsp; &nbsp; &nbsp;As String<br><br>&nbsp; &nbsp; Dim ValOut4&nbsp; &nbsp; &nbsp; &nbsp; As String<br>&nbsp; &nbsp; Dim rValOut4&nbsp; &nbsp; &nbsp; &nbsp;As String<br><br>&nbsp; &nbsp; Dim ValOut5&nbsp; &nbsp; &nbsp; &nbsp; As String<br>&nbsp; &nbsp; Dim rValOut5&nbsp; &nbsp; &nbsp; &nbsp;As String<br><br>&nbsp; &nbsp; Dim ValOut6&nbsp; &nbsp; &nbsp; &nbsp; As String<br>&nbsp; &nbsp; Dim rValOut6&nbsp; &nbsp; &nbsp; &nbsp;As String<br><br>&nbsp; &nbsp; Set swPropMgr = swExt.CustomPropertyManager("")<br><br>&nbsp; &nbsp; swPropMgr.Get2 "ファイル名", ValOut, rValOut<br><br>&nbsp; &nbsp; If Doctype = swDocPART Then<br>&nbsp; &nbsp; &nbsp; &nbsp; Set config = Part.GetActiveConfiguration<br>&nbsp; &nbsp; Else<br>&nbsp; &nbsp; &nbsp; &nbsp; Set config = Assem.GetActiveConfiguration<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; Set swPropMgr = config.CustomPropertyManager<br><br>&nbsp; &nbsp; swPropMgr.Get2 "設備NO", ValOut1, rValOut1<br>&nbsp; &nbsp; swPropMgr.Get2 "部位記号", ValOut2, rValOut2<br>&nbsp; &nbsp; swPropMgr.Get2 "品番", ValOut3, rValOut3<br>&nbsp; &nbsp; swPropMgr.Get2 "品名", ValOut4, rValOut4<br><br>&nbsp; &nbsp; If PathName = "supply" Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; swPropMgr.Get2 "型番", ValOut5, rValOut5<br>&nbsp; &nbsp; &nbsp; &nbsp; swPropMgr.Get2 "メーカー", ValOut6, rValOut6<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; '==================================================<br>&nbsp; &nbsp; ' 入力チェック<br>&nbsp; &nbsp; '==================================================<br><br>&nbsp; &nbsp; If rValOut1 = "" Then<br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "プロパティ設備NOが入力されてません"<br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo FINISH<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; If rValOut2 = "" Then<br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "プロパティ部位記号が入力されてません"<br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo FINISH<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; If rValOut3 = "" Then<br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "プロパティ品番が入力されてません"<br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo FINISH<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; If rValOut4 = "" Then<br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "プロパティ品名が入力されてません"<br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo FINISH<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; '==================================================<br>&nbsp; &nbsp; ' ファイル名チェック<br>&nbsp; &nbsp; '==================================================<br><br>&nbsp; &nbsp; Dim fileNG As Integer<br><br>&nbsp; &nbsp; fileNG = 0<br><br>&nbsp; &nbsp; If InStr(rValOut, "\") &gt; 0 Then fileNG = 1<br>&nbsp; &nbsp; If InStr(rValOut, "/") &gt; 0 Then fileNG = 1<br>&nbsp; &nbsp; If InStr(rValOut, ":") &gt; 0 Then fileNG = 1<br>&nbsp; &nbsp; If InStr(rValOut, "*") &gt; 0 Then fileNG = 1<br>&nbsp; &nbsp; If InStr(rValOut, "?") &gt; 0 Then fileNG = 1<br>&nbsp; &nbsp; If InStr(rValOut, """") &gt; 0 Then fileNG = 1<br>&nbsp; &nbsp; If InStr(rValOut, "&lt;") &gt; 0 Then fileNG = 1<br>&nbsp; &nbsp; If InStr(rValOut, "&gt;") &gt; 0 Then fileNG = 1<br>&nbsp; &nbsp; If InStr(rValOut, "|") &gt; 0 Then fileNG = 1<br><br>&nbsp; &nbsp; If fileNG = 1 Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "ファイル名に使用出来ない文字が含まれてます"<br><br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo FINISH<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; '==================================================<br>&nbsp; &nbsp; ' 保存処理<br>&nbsp; &nbsp; '==================================================<br><br>&nbsp; &nbsp; Dim fPath&nbsp; &nbsp; &nbsp; As String<br>&nbsp; &nbsp; Dim fPath1&nbsp; &nbsp; &nbsp;As String<br><br>&nbsp; &nbsp; If Doctype = swDocPART Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; fPath = BrowseFolder &amp; "\" &amp; rValOut &amp; ".SLDPRT"<br><br>&nbsp; &nbsp; &nbsp; &nbsp; SAVE_DOCUMENT swModel, fPath<br><br>&nbsp; &nbsp; Else<br><br>&nbsp; &nbsp; &nbsp; &nbsp; Select Case flag<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Case 1<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fPath = BrowseFolder &amp; "\" &amp; rValOut &amp; ".SLDASM"<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SAVE_DOCUMENT swModel, fPath<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Case 2<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fPath = BrowseFolder &amp; "\" &amp; rValOut &amp; ".SLDPRT"<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SAVE_AS_PART swModel, fPath<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Case 3<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fPath1 = BrowseFolder &amp; "\" &amp; rValOut<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Dir(fPath1, vbDirectory) = "" Then<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MkDir fPath1<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SAVE_WITH_PREFIX _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; swModel, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fPath1, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BrowseFolder, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rValOut, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rValOut1, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rValOut2<br><br>&nbsp; &nbsp; &nbsp; &nbsp; End Select<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; MsgBox "保存完了", vbInformation<br><br>&nbsp; &nbsp; GoTo FINISH<br><br>'==================================================<br>' エラー<br>'==================================================<br><br>ERR_HANDLER:<br><br>&nbsp; &nbsp; MsgBox "エラー発生" &amp; vbCrLf &amp; _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Err.Number &amp; vbCrLf &amp; _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Err.Description, vbCritical<br><br>FINISH:<br><br>&nbsp; &nbsp; On Error Resume Next<br><br>&nbsp; &nbsp; If Not swModel Is Nothing Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; swModel.ClearSelection2 True<br><br>&nbsp; &nbsp; &nbsp; &nbsp; swModel.ForceRebuild3 False<br><br>&nbsp; &nbsp; &nbsp; &nbsp; swModel.GraphicsRedraw2<br><br>&nbsp; &nbsp; &nbsp; &nbsp; DoEvents<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; swApp.CommandInProgress = False<br><br>&nbsp; &nbsp; flag = 0<br><br>&nbsp; &nbsp; Doctype = 0<br><br>&nbsp; &nbsp; boolstatus = False<br><br>&nbsp; &nbsp; longstatus = 0<br>&nbsp; &nbsp; longwarnings = 0<br><br>&nbsp; &nbsp; Set swExt = Nothing<br><br>&nbsp; &nbsp; Set Part = Nothing<br>&nbsp; &nbsp; Set Assem = Nothing<br><br>&nbsp; &nbsp; Set swModelDoc = Nothing<br>&nbsp; &nbsp; Set swModel = Nothing<br><br>&nbsp; &nbsp; Set swApp = Nothing<br><br>&nbsp; &nbsp; DoEvents<br><br>&nbsp; &nbsp; On Error GoTo 0<br><br>End Sub<br><br>'==================================================<br>' SaveAs3 共通<br>'==================================================<br><br>Private Sub SAVE_DOCUMENT( _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal mdl As ModelDoc2, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal savePath As String)<br><br>&nbsp; &nbsp; Dim swExt&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As ModelDocExtension<br>&nbsp; &nbsp; Dim errors&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Long<br>&nbsp; &nbsp; Dim warnings&nbsp; &nbsp; &nbsp; &nbsp; As Long<br>&nbsp; &nbsp; Dim ret&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Boolean<br><br>&nbsp; &nbsp; Set swExt = mdl.Extension<br><br>&nbsp; &nbsp; mdl.ForceRebuild3 False<br><br>&nbsp; &nbsp; ret = swExt.SaveAs3( _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; savePath, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; swSaveAsCurrentVersion, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; swSaveAsOptions_Silent, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Nothing, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Nothing, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; errors, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; warnings)<br><br>&nbsp; &nbsp; If ret = False Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "保存失敗" &amp; vbCrLf &amp; _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"Error:" &amp; errors &amp; vbCrLf &amp; _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"Warning:" &amp; warnings, vbCritical<br><br>&nbsp; &nbsp; End If<br><br>End Sub<br><br>'==================================================<br>' Assembly &rarr; Part<br>'==================================================<br><br>Private Sub SAVE_AS_PART( _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal mdl As ModelDoc2, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal savePath As String)<br><br>&nbsp; &nbsp; Dim errors As Long<br>&nbsp; &nbsp; Dim warnings As Long<br>&nbsp; &nbsp; Dim ret As Boolean<br><br>swApp.SetUserPreferenceIntegerValue _<br>&nbsp; &nbsp; swUserPreferenceIntegerValue_e.swSaveAssemblyAsPartOptions, _<br>&nbsp; &nbsp; swSaveAsmAsPartOptions_e.swSaveAsmAsPart_AllComponents<br><br>&nbsp; &nbsp; mdl.ForceRebuild3 False<br><br>&nbsp; &nbsp; ret = mdl.Extension.SaveAs3( _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; savePath, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; swSaveAsCurrentVersion, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; swSaveAsOptions_Silent, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Nothing, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Nothing, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; errors, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; warnings)<br><br>&nbsp; &nbsp; If ret = False Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; MsgBox "PART保存失敗" &amp; vbCrLf &amp; _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"Error:" &amp; errors &amp; vbCrLf &amp; _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"Warning:" &amp; warnings, vbCritical<br><br>&nbsp; &nbsp; &nbsp; &nbsp; Exit Sub<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; If Dir(savePath) = "" Then MsgBox "PARTファイル未生成", vbCritical<br><br>&nbsp; &nbsp; 'Else<br><br>&nbsp; &nbsp; &nbsp;'&nbsp; &nbsp;MsgBox "PART保存成功", vbInformation<br><br>&nbsp; &nbsp; 'End If<br><br>End Sub<br><br>'==================================================<br>' Prefix保存<br>'==================================================<br><br>Private Sub SAVE_WITH_PREFIX( _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal mdl As ModelDoc2, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal partsFolder As String, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal asmFolder As String, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal asmName As String, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal setsubiNo As String, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ByVal bui As String)<br><br>&nbsp; &nbsp; Dim swAssy&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As AssemblyDoc<br>&nbsp; &nbsp; Dim swConfig&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Configuration<br>&nbsp; &nbsp; Dim swRootComp&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Component2<br>&nbsp; &nbsp; Dim vChild&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Variant<br>&nbsp; &nbsp; Dim swComp&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As Component2<br><br>&nbsp; &nbsp; Dim swPartModel&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As ModelDoc2<br><br><br>&nbsp; &nbsp; Dim sourcePath&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As String<br>&nbsp; &nbsp; Dim savePath&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; As String<br><br>&nbsp; &nbsp; Dim oldName&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As String<br>&nbsp; &nbsp; Dim newName&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As String<br><br>&nbsp; &nbsp; Dim i&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Long<br>&nbsp; &nbsp; Dim ret&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;As Boolean<br><br>&nbsp; &nbsp; swApp.CommandInProgress = True<br><br>&nbsp; &nbsp; Set swAssy = mdl<br><br>'==========================================<br>' 軽量解除<br>'==========================================<br><br>swAssy.ResolveAllLightWeightComponents True<br><br>mdl.ForceRebuild3 False<br><br>Set swConfig = mdl.GetActiveConfiguration<br><br>Set swRootComp = swConfig.GetRootComponent<br><br>vChild = swRootComp.GetChildren<br><br>If IsEmpty(vChild) Then Exit Sub<br><br>For i = 0 To UBound(vChild)<br><br>&nbsp; &nbsp; Set swComp = vChild(i)<br><br>&nbsp; &nbsp; Set swPartModel = swComp.GetModelDoc2<br><br>&nbsp; &nbsp; If swPartModel Is Nothing Then<br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo NEXT_COMPONENT<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; If swPartModel.GetType &lt;&gt; swDocPART Then<br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo NEXT_COMPONENT<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; sourcePath = swPartModel.GetPathName<br><br>&nbsp; &nbsp; If sourcePath = "" Then<br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo NEXT_COMPONENT<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; oldName = swComp.Name2<br><br>&nbsp; &nbsp; Dim pos As Long<br>&nbsp; &nbsp; pos = InStrRev(oldName, "-")<br><br>&nbsp; &nbsp; If pos &gt; 0 Then<br>&nbsp; &nbsp; &nbsp; &nbsp; oldName = Left(oldName, pos - 1)<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; If IsNumeric(Left(oldName, 4)) Then<br>&nbsp; &nbsp; &nbsp; &nbsp; oldName = Mid(oldName, 6)<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; If InStr(oldName, setsubiNo) &gt; 0 Then<br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo NEXT_COMPONENT<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; newName = setsubiNo &amp; bui &amp; "_" &amp; oldName<br><br>&nbsp; &nbsp; savePath = partsFolder &amp; "\" &amp; newName &amp; ".SLDPRT"<br><br>&nbsp; &nbsp; '==========================================<br>&nbsp; &nbsp; ' 既存ファイル削除<br>&nbsp; &nbsp; '==========================================<br><br>&nbsp; &nbsp; If Dir(savePath) &lt;&gt; "" Then<br>&nbsp; &nbsp; &nbsp; &nbsp; Kill savePath<br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; '==========================================<br>&nbsp; &nbsp; ' 部品コピー保存<br>&nbsp; &nbsp; '==========================================<br><br>&nbsp; &nbsp; Dim swSaveExt As ModelDocExtension<br>&nbsp; &nbsp; Dim errors As Long<br>&nbsp; &nbsp; Dim warnings As Long<br><br>&nbsp; &nbsp; Set swSaveExt = swPartModel.Extension<br><br>&nbsp; &nbsp; swPartModel.ForceRebuild3 False<br><br>&nbsp; &nbsp; ret = swSaveExt.SaveAs3( _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; savePath, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; swSaveAsCurrentVersion, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; swSaveAsOptions_Silent + swSaveAsOptions_Copy, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Nothing, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Nothing, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; errors, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; warnings)<br><br>&nbsp; &nbsp; Debug.Print "SaveAs3=" &amp; ret<br>&nbsp; &nbsp; Debug.Print "errors=" &amp; errors<br>&nbsp; &nbsp; Debug.Print "warnings=" &amp; warnings<br><br>&nbsp; &nbsp; If ret = False Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; Debug.Print "SaveAs失敗 : " &amp; savePath<br><br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo NEXT_COMPONENT<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; '==========================================<br>&nbsp; &nbsp; ' 構成部品選択<br>&nbsp; &nbsp; '==========================================<br><br>&nbsp; &nbsp; boolstatus = swComp.Select4(False, Nothing, False)<br><br>&nbsp; &nbsp; '==========================================<br>&nbsp; &nbsp; ' 参照置換<br>&nbsp; &nbsp; '==========================================<br><br>&nbsp; &nbsp; ret = swAssy.ReplaceComponents( _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; savePath, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "", _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; True, _<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; True)<br><br>&nbsp; &nbsp; If ret = False Then<br><br>&nbsp; &nbsp; &nbsp; &nbsp; Debug.Print "Replace失敗 : " &amp; savePath<br><br>&nbsp; &nbsp; &nbsp; &nbsp; GoTo NEXT_COMPONENT<br><br>&nbsp; &nbsp; End If<br><br>&nbsp; &nbsp; '==========================================<br>&nbsp; &nbsp; ' 構成部品再取得<br>&nbsp; &nbsp; '==========================================<br><br>&nbsp; &nbsp; vChild = swRootComp.GetChildren<br><br>&nbsp; &nbsp; Set swComp = vChild(i)<br><br>&nbsp; &nbsp; '==========================================<br>&nbsp; &nbsp; ' FeatureManager名変更<br>&nbsp; &nbsp; '==========================================<br><br>&nbsp; &nbsp; boolstatus = swComp.Select4(False, Nothing, False)<br><br>&nbsp; &nbsp; mdl.Extension.RenameDocument newName<br><br>&nbsp; &nbsp; '==========================================<br>&nbsp; &nbsp; ' 再構築<br>&nbsp; &nbsp; '==========================================<br><br>&nbsp; &nbsp; mdl.ForceRebuild3 False<br><br>NEXT_COMPONENT:<br><br>Next i<br><br>'==========================================<br>' 最終再構築<br>'==========================================<br><br>mdl.ForceRebuild3 False<br><br>'==========================================<br>' Assembly保存<br>'==========================================<br><br>savePath = asmFolder &amp; "\" &amp; asmName &amp; ".SLDASM"<br><br>SAVE_DOCUMENT mdl, savePath<br><br>End Sub</p>
<p>&nbsp;</p>]]></description>
	<dc:creator>福谷勇時</dc:creator>
</item>
<item>
	<guid isPermaLink='true'>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88#item-annotation-238196</guid>
	<pubDate>Fri, 08 May 2026 12:33:57 +0900</pubDate>
	<link>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88#item-annotation-238196</link>
	<title><![CDATA[山本誠 さんが付けたコメント]]></title>
	<description><![CDATA[<p>『構成部品の名前変更を有効化』がONになってたとしたら、OFFにしてみてどうなるか確認できますかね。<br>この機能の追加で、ツリー上で名前を変更すると、ファイル名自身を変更できるようになったので、<br>その辺りが影響しているのかと。<br><br>あとは、変数定義時(Dim)のところで、最新のクラス（インターフェース）に変えてあげるとうまくいく事もあるかもしれません。（新しいメソッドで対応できるなど）<br>例えば、Dim swRootComp As SldWorks.Component の場合、<br>Component2 という新しいクラスがあるので変えてみるとか。<br>ただ、メソッドが変わってたり、引数増えてたりなどで、修正が大変だったりもします。</p>]]></description>
	<dc:creator>山本誠</dc:creator>
</item>
<item>
	<guid isPermaLink='true'>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88#item-annotation-238158</guid>
	<pubDate>Fri, 08 May 2026 11:44:28 +0900</pubDate>
	<link>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88#item-annotation-238158</link>
	<title><![CDATA[福谷勇時 さんが付けたコメント]]></title>
	<description><![CDATA[<p>山本さん</p>
<p>いつもお世話になってます。</p>
<p>本件、システムオプションの『構成部品の名前変更を有効化』はONになってました。</p>
<p>ちなみに確認ダイアログもメッセージ閉じていたので、表示させるようにしてみましたが、現象変わらずでした。</p>
<p>とりあえずAPIヘルプ確認してみますね（これだけ英語版のみなので、知りたい情報探すだけでも苦労しますが・・・）</p>
<p>なにか分かれば、また教えていただけると幸いです。</p>
<p>よろしくお願いします。</p>]]></description>
	<dc:creator>福谷勇時</dc:creator>
</item>
<item>
	<guid isPermaLink='true'>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88#item-annotation-238025</guid>
	<pubDate>Wed, 06 May 2026 10:48:35 +0900</pubDate>
	<link>http://swjug.org/blog/view/532609/sw2021%E2%86%92sw2026%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97%E5%BE%8C%E3%81%AEapi%E4%B8%8D%E5%85%B7%E5%90%88#item-annotation-238025</link>
	<title><![CDATA[山本誠 さんが付けたコメント]]></title>
	<description><![CDATA[<p>ゴールデンウィークに入ってしまったので返信が遅くなってしまいました...<br><br>ざっとコードを見た限り動きそうな気がしますね。<br>（実際に試してないのでわからないですが）<br><br>たぶん、この状況からするとシステムオプションが関連してそうな気がします。<br>システムオプションの『FeatureManager』にある『FeatureManagerつりーから構成部品の名前変更を有効化』がOFFになっている可能性があります。<br>このオプションがどのバージョンで追加されたかは覚えてないのですが、<br>ONにして構成部品名変更するとそのタイミングで確認ダイアログが表示されるようになったので、<br>この辺りの処理が必要になってくるかもしれません。<br><br></p>]]></description>
	<dc:creator>山本誠</dc:creator>
</item>

</channel>
</rss>