בקשה | כפתורי רדיו בכרטיסיה באופיס
-
אם מישהו יכול להסביר לי איך ליצור קוד xml ו-vab
שיוצר בכרטיסיה באופיס כפתורי רדיו שבלחיצה על 1 מהם השאר נכבים (כמו שיש בתוסף עיצוב תורני)
@pcinfogmach -
אם אתה רוצה כמו בעיצוב תורני הכי קל תפתח את הקובץ של תוסף עיצוב תורני ותראה איך עשיתי את זה אבל שים לב שמה זה לא כפתורי רדיו הייתי צריך משהו קצת שונה - כי בכפתורי רדיו תמיד אחד צריך שיהיה מסומן.
-
@pcinfogmach כתב בבקשה | כפתורי רדיו בכרטיסיה באופיס:
אם אתה רוצה כמו בעיצוב תורני הכי קל תפתח את הקובץ של תוסף עיצוב תורני ותראה איך עשיתי את זה אבל שים לב שמה זה לא כפתורי רדיו הייתי צריך משהו קצת שונה - כי בכפתורי רדיו תמיד אחד צריך שיהיה מסומן.
0
לפני שעה
צריך גם קוד vba לא?
-
@pcinfogmach שהוא...
-
@pcinfogmach כתב בבקשה | כפתורי רדיו בכרטיסיה באופיס:
הכי קל תפתח את הקובץ של תוסף עיצוב תורני
-
@pcinfogmach אי אפשר לפתוח את הקוד vba בתוסף עיצוב תורני
-
@שלמה11
ודאי שאפשר בכל אופן הנה הקובץ
תוסף עיצוב תורני - עיצוב פסקה.dotm
בגדול זה די פשוט בלינק למעלה תסתכל מה כתוב שם על callbacks -
@pcinfogmach האמת שזה קצת מסובך להתמצאות שם... אם תוכל לתת לי קוד ממוקד אני אשמח
-
@שלמה11
יש שלוש חלקים
א - משתנה גלובלי עבור כל checkboxב- קוד עבור עידכון המצב
Sub CheckBox_OnAction(control As IRibbonControl, pressed As Boolean)
את זה צריך לחבר לפעולה של ה-checkbox
בתוך ה-sub הזה אתה שם לוגיקה שמשנה את מצב המתשנה הגלובלי של שאר ה-checkbox
ואז אתה קורא ל-myRibbon.InvalidateControl "InsertIdofcheBoxesToUpdate"
ג- תחבר את הקוד הזה לכל checkbox
Sub CheckBox_OnGetPressed(control As IRibbonControl, ByRef returnedVal)
תכניס לו לוגיקה שישנה את returnedVal על פי המשתנה המתאים ל-id של ה-control
הנה דוגמא ל-xml באדיבות gpt
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="RibbonOnLoad"> <ribbon> <tabs> <tab id="CustomTab" label="My Custom Tab"> <group id="CustomGroup" label="Options"> <checkBox id="CheckBox1" label="Option 1" onAction="CheckBox_OnAction" getPressed="CheckBox_OnGetPressed"/> <checkBox id="CheckBox2" label="Option 2" onAction="CheckBox_OnAction" getPressed="CheckBox_OnGetPressed"/> <checkBox id="CheckBox3" label="Option 3" onAction="CheckBox_OnAction" getPressed="CheckBox_OnGetPressed"/> </group> </tab> </tabs> </ribbon> </customUI>
הנה דוגמא של קוד באדיבות gpt
' משתנים גלובליים לניהול המצב של checkboxes Dim CheckBox1Pressed As Boolean Dim CheckBox2Pressed As Boolean Dim CheckBox3Pressed As Boolean Dim myRibbon As IRibbonUI ' מאתחל את Ribbon כשנפתח Sub RibbonOnLoad(ribbon As IRibbonUI) Set myRibbon = ribbon ' אתחול ברירת המחדל CheckBox1Pressed = False CheckBox2Pressed = False CheckBox3Pressed = False End Sub ' מטפל בלחיצה על CheckBox Sub CheckBox_OnAction(control As IRibbonControl, pressed As Boolean) Select Case control.Id Case "CheckBox1" CheckBox1Pressed = pressed Case "CheckBox2" CheckBox2Pressed = pressed Case "CheckBox3" CheckBox3Pressed = pressed End Select ' מעדכן את רצועת הכלים myRibbon.InvalidateControl control.Id End Sub ' מחזיר את מצב ה-Pressed של CheckBox Sub CheckBox_OnGetPressed(control As IRibbonControl, ByRef returnedVal) Select Case control.Id Case "CheckBox1" returnedVal = CheckBox1Pressed Case "CheckBox2" returnedVal = CheckBox2Pressed Case "CheckBox3" returnedVal = CheckBox3Pressed End Select End Sub
-
שים לב יש חיסרון אחד בשיטה זו - מכיוון ששינוי המצב של ה-checkbox נתפס כפעולה מצד וורד ממילא כאשר המשתמש ילחץ עליו והסרגל נמצא במצב של הסתרה אוטומטית הוא לא יישאר פתוח.
-
@pcinfogmach תודה רבה על העזרה.
לתועלת הציבור הקוד הנ"ל מתוקן:
קוד vba:Dim CheckBox1Pressed As Boolean Dim CheckBox2Pressed As Boolean Dim CheckBox3Pressed As Boolean Dim myRibbon As IRibbonUI Sub OnLoad(ribbon As IRibbonUI) Set myRibbon = ribbon End Sub Sub CheckBox_OnAction(control As IRibbonControl, pressed As Boolean) Select Case control.ID Case "CheckBox1" CheckBox1Pressed = pressed CheckBox2Pressed = False CheckBox3Pressed = False Case "CheckBox2" CheckBox2Pressed = pressed CheckBox1Pressed = False CheckBox3Pressed = False Case "CheckBox3" CheckBox3Pressed = pressed CheckBox1Pressed = False CheckBox2Pressed = False End Select myRibbon.InvalidateControl "CheckBox1" myRibbon.InvalidateControl "CheckBox2" myRibbon.InvalidateControl "CheckBox3" End Sub Sub CheckBox_OnGetPressed(control As IRibbonControl, ByRef returnedVal) Select Case control.ID Case "CheckBox1" returnedVal = CheckBox1Pressed Case "CheckBox2" returnedVal = CheckBox2Pressed Case "CheckBox3" returnedVal = CheckBox3Pressed End Select End Sub
קוד xml:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="OnLoad"> <ribbon> <tabs> <tab id="CustomTab" label="My Custom Tab"> <group id="CustomGroup" label="Options"> <checkBox id="CheckBox1" label="Option 1" onAction="CheckBox_OnAction" getPressed="CheckBox_OnGetPressed"/> <checkBox id="CheckBox2" label="Option 2" onAction="CheckBox_OnAction" getPressed="CheckBox_OnGetPressed"/> <checkBox id="CheckBox3" label="Option 3" onAction="CheckBox_OnAction" getPressed="CheckBox_OnGetPressed"/> </group> </tab> </tabs> </ribbon> </customUI>
-
-