<?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: 4月 2026]]></title>
	<link>http://swjug.org/blog/archive/akane11112222/1774969200/1777561200</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>

</channel>
</rss>