דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. תוכנות
  3. יישומי אופיס
  4. וורד
  5. עזרה הדדית - וורד
  6. המלצה | פרוייקט כלי קודש לוורד - ארגז כלים לעורך התורני

המלצה | פרוייקט כלי קודש לוורד - ארגז כלים לעורך התורני

מתוזמן נעוץ נעול הועבר עזרה הדדית - וורד
1.7k פוסטים 80 כותבים 158.7k צפיות 55 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • pcinfogmachP pcinfogmach

    @צדיק-וטוב-לו-0 כתב:

    בהגדרות הדפסה, אין אפשרות להשתמש בחיצים של הגדלת מספר העותקים.

    אתה מתכווין בpdf?
    אני הצלחתי...
    תשלח לי קובץ

    צדיק וטוב לו 0צ מנותק
    צדיק וטוב לו 0צ מנותק
    צדיק וטוב לו 0
    כתב נערך לאחרונה על ידי
    #1611

    @pcinfogmach
    הקלטה 2026-08-23 151912.gif

    pcinfogmachP תגובה 1 תגובה אחרונה
    0
    • pcinfogmachP pcinfogmach

      @דאנציג כתב:

      האמת היא, שגם לי לקח רגע עד שמצאתי את זה

      חברה! הבו עצה! מה עושים?????

      דאנציגד מנותק
      דאנציגד מנותק
      דאנציג
      מדריכים
      כתב נערך לאחרונה על ידי
      #1612

      @pcinfogmach
      סוגיא סבוכה, וכפי שכתבתי, בוורד זה באמת יותר מתאים כמו שעשית, כך שאין ברירה, אלא להשאיר לנו עבודה לשאול ולענות...
      אולי מדריך קצר כמו שביקשו בגיטהב, היום אנשים לא קוראים הגדרות וכדו', כך שאם תתן לAI למשל לעשות מדריך על ההגדרות, לדעתי זה יספק את רוב השואלים!

      י תגובה 1 תגובה אחרונה
      2
      • דאנציגד דאנציג

        @pcinfogmach
        סוגיא סבוכה, וכפי שכתבתי, בוורד זה באמת יותר מתאים כמו שעשית, כך שאין ברירה, אלא להשאיר לנו עבודה לשאול ולענות...
        אולי מדריך קצר כמו שביקשו בגיטהב, היום אנשים לא קוראים הגדרות וכדו', כך שאם תתן לAI למשל לעשות מדריך על ההגדרות, לדעתי זה יספק את רוב השואלים!

        י מנותק
        י מנותק
        יעב"ץ
        כתב נערך לאחרונה על ידי
        #1613

        @דאנציג כתב:

        היום אנשים לא קוראים הגדרות וכדו'

        מי כלול בהגדרת אנשים?

        אני כן קורא.

        תגובה 1 תגובה אחרונה
        😲
        1
        • צדיק וטוב לו 0צ צדיק וטוב לו 0

          @pcinfogmach
          הקלטה 2026-08-23 151912.gif

          pcinfogmachP מנותק
          pcinfogmachP מנותק
          pcinfogmach
          מדריכים
          כתב נערך לאחרונה על ידי
          #1614

          @צדיק-וטוב-לו-0
          אכתי אינני מצליח לשחזר את הבעיה

          גמ"ח עזרה וייעוץ בנושאי מחשבים

          תגובה 1 תגובה אחרונה
          0
          • pcinfogmachP pcinfogmach

            @אלכסנדר-צדש כתב:

            למעבר מחלונית תוצאות חיפוש, לחלונית פתיחת התוצאות, לא נפתח טאב נפרד וממילא בשביל לחזור חזרה חלונית פתיחת תוצאות [לאחר פתיחת תוצאת חיפוש] צריך להשתמש בחיצים, כמדומה שכדאי שיהיה טאב נפרד ואבסולוטי לחולנית תוצאות החיפוש.

            כדי לפתוח תוצאה בטאב נפרד לוחצים על cntrl בעת לחיצה על התוצאה

            א מנותק
            א מנותק
            אלכסנדר צדש
            כתב נערך לאחרונה על ידי
            #1615

            @pcinfogmach כתב:

            כדי לפתוח תוצאה בטאב נפרד לוחצים על cntrl בעת לחיצה על התוצאה

            לא כדאי שזה יהיה כבררת מחדל?
            [כמדו' שרוב הלומדים לא בקיאים בפונקציות המקשים המשוכללות]

            יש"כ גדול.

            pcinfogmachP תגובה 1 תגובה אחרונה
            0
            • א אלכסנדר צדש

              @pcinfogmach כתב:

              כדי לפתוח תוצאה בטאב נפרד לוחצים על cntrl בעת לחיצה על התוצאה

              לא כדאי שזה יהיה כבררת מחדל?
              [כמדו' שרוב הלומדים לא בקיאים בפונקציות המקשים המשוכללות]

              יש"כ גדול.

              pcinfogmachP מנותק
              pcinfogmachP מנותק
              pcinfogmach
              מדריכים
              כתב נערך לאחרונה על ידי pcinfogmach
              #1616

              @אלכסנדר-צדש כתב:

              לא כדאי שזה יהיה כבררת מחדל?

              לא
              ככה זה יותר נכון ואני לא רואה סיבה לייצר משהו מעוות שמכשיל חצי מפונקציונליות המשוכללת של התוכנה רק בגלל העצלות של אנשים
              זה מופיע בטולטיפ וזה די והותר
              מי שאפילו זה לא מסוגל לעשות לקרוא טולטיפ קצר ושימושי מגיע לו את העונש הזה שלא ידע
              עוד מעט יבקשו ממני לייצר תוכנה שלא מציגה את הטקסט אלא מקרינה אותו ישיריות לתוך המוח....

              הבהרה: אולי כתבתי חריף מדאי הכל נאמר מתוך מילתא דבדיחותא בלבד

              גמ"ח עזרה וייעוץ בנושאי מחשבים

              י. פל.י תגובה 1 תגובה אחרונה
              😀
              3
              • pcinfogmachP pcinfogmach

                @אלכסנדר-צדש כתב:

                לא כדאי שזה יהיה כבררת מחדל?

                לא
                ככה זה יותר נכון ואני לא רואה סיבה לייצר משהו מעוות שמכשיל חצי מפונקציונליות המשוכללת של התוכנה רק בגלל העצלות של אנשים
                זה מופיע בטולטיפ וזה די והותר
                מי שאפילו זה לא מסוגל לעשות לקרוא טולטיפ קצר ושימושי מגיע לו את העונש הזה שלא ידע
                עוד מעט יבקשו ממני לייצר תוכנה שלא מציגה את הטקסט אלא מקרינה אותו ישיריות לתוך המוח....

                הבהרה: אולי כתבתי חריף מדאי הכל נאמר מתוך מילתא דבדיחותא בלבד

                י. פל.י מנותק
                י. פל.י מנותק
                י. פל.
                כתב נערך לאחרונה על ידי
                #1617

                @pcinfogmach כתב:

                עוד מעט יבקשו ממני לייצר תוכנה שלא מציגה את הטקסט אלא מקרינה אותו ישיריות לתוך המוח....

                תוכל, בבקשה?
                אני ממש אשמח!

                גאה להיות חלק:
                otzaria.org

                בנימין מחשביםב pcinfogmachP 2 תגובות תגובה אחרונה
                😂
                2
                • י. פל.י י. פל.

                  @pcinfogmach כתב:

                  עוד מעט יבקשו ממני לייצר תוכנה שלא מציגה את הטקסט אלא מקרינה אותו ישיריות לתוך המוח....

                  תוכל, בבקשה?
                  אני ממש אשמח!

                  בנימין מחשביםב מנותק
                  בנימין מחשביםב מנותק
                  בנימין מחשבים
                  מדריכים
                  כתב נערך לאחרונה על ידי בנימין מחשבים
                  #1618

                  @י.-פל.

                  פריצת סינונים

                  יש 10 סוגים של אנשים, אלה שמבינים בינארית ואלה שלא

                  תגובה 1 תגובה אחרונה
                  😂
                  1
                  • י. פל.י י. פל.

                    @pcinfogmach כתב:

                    עוד מעט יבקשו ממני לייצר תוכנה שלא מציגה את הטקסט אלא מקרינה אותו ישיריות לתוך המוח....

                    תוכל, בבקשה?
                    אני ממש אשמח!

                    pcinfogmachP מנותק
                    pcinfogmachP מנותק
                    pcinfogmach
                    מדריכים
                    כתב נערך לאחרונה על ידי
                    #1619

                    @י.-פל.
                    אתה בטוח שאתה רוצה לראות את הדף חסימה של נטפרי פתאום מופיעה לך במוח?

                    גמ"ח עזרה וייעוץ בנושאי מחשבים

                    י תגובה 1 תגובה אחרונה
                    😂
                    0
                    • pcinfogmachP pcinfogmach

                      @י.-פל.
                      אתה בטוח שאתה רוצה לראות את הדף חסימה של נטפרי פתאום מופיעה לך במוח?

                      י מנותק
                      י מנותק
                      יעב"ץ
                      כתב נערך לאחרונה על ידי
                      #1620

                      @pcinfogmach כתב:

                      אתה בטוח שאתה רוצה לראות את הדף חסימה של נטפרי פתאום מופיעה לך במוח?

                      הלוואי שהיתה אפשרות כזו!

                      בנימין מחשביםב צדיק וטוב לו 0צ 2 תגובות תגובה אחרונה
                      1
                      • י יעב"ץ

                        @pcinfogmach כתב:

                        אתה בטוח שאתה רוצה לראות את הדף חסימה של נטפרי פתאום מופיעה לך במוח?

                        הלוואי שהיתה אפשרות כזו!

                        בנימין מחשביםב מנותק
                        בנימין מחשביםב מנותק
                        בנימין מחשבים
                        מדריכים
                        כתב נערך לאחרונה על ידי בנימין מחשבים
                        #1621

                        @יעב-ץ יש בהחלט! התקנה מורכבת למדי אבל אלול זה זמן מתאים.
                        ובזאת סיימנו להספים להרב @pcinfogmach שליט"א את האשכול 😉

                        הבעיה עם זה שזה כל הזמן דורש עדכונים... ופתאום עדכון אחד יכול להקריס את המערכת
                        זה פרויקט שלא נגמר בחיים. פשוטו כמשמעו

                        יש 10 סוגים של אנשים, אלה שמבינים בינארית ואלה שלא

                        תגובה 1 תגובה אחרונה
                        😂
                        3
                        • י יעב"ץ

                          @pcinfogmach כתב:

                          אתה בטוח שאתה רוצה לראות את הדף חסימה של נטפרי פתאום מופיעה לך במוח?

                          הלוואי שהיתה אפשרות כזו!

                          צדיק וטוב לו 0צ מנותק
                          צדיק וטוב לו 0צ מנותק
                          צדיק וטוב לו 0
                          כתב נערך לאחרונה על ידי
                          #1622

                          @יעב-ץ יש.
                          שמעת פעם על ר' מתיא בן החרש?
                          או על דברי הגאונים בטעם שרב ששת ורב יוסף היו סגי נהור.

                          י תגובה 1 תגובה אחרונה
                          😲
                          1
                          • צדיק וטוב לו 0צ צדיק וטוב לו 0

                            @יעב-ץ יש.
                            שמעת פעם על ר' מתיא בן החרש?
                            או על דברי הגאונים בטעם שרב ששת ורב יוסף היו סגי נהור.

                            י מנותק
                            י מנותק
                            יעב"ץ
                            כתב נערך לאחרונה על ידי
                            #1623

                            @צדיק-וטוב-לו-0
                            זה לא המוח.

                            תגובה 1 תגובה אחרונה
                            0
                            • M מנותק
                              M מנותק
                              mendel braun
                              כתב נערך לאחרונה על ידי
                              #1624

                              נמצאה שגיאה ב- XML של ממשק משתמש מותאם אישית של "כלי קודש":
                              שורה: 154
                              עמודה: 49
                              קוד שגיאה 0x80004005
                              מזהה פקד לא ידוע של ContextMenuListsNumbering :Office

                              pcinfogmachP תגובה 1 תגובה אחרונה
                              1
                              • ח מנותק
                                ח מנותק
                                חד בדרא השני
                                כתב נערך לאחרונה על ידי
                                #1625

                                אני ב904 עם המסד המעודכן של אוצריא,
                                כל פתיחה זה מאנדקס את החיפוש מחדש, קרה לעוד מישהו?

                                pcinfogmachP תגובה 1 תגובה אחרונה
                                1
                                • ח חד בדרא השני

                                  אני ב904 עם המסד המעודכן של אוצריא,
                                  כל פתיחה זה מאנדקס את החיפוש מחדש, קרה לעוד מישהו?

                                  pcinfogmachP מנותק
                                  pcinfogmachP מנותק
                                  pcinfogmach
                                  מדריכים
                                  כתב נערך לאחרונה על ידי
                                  #1626

                                  @חד-בדרא-השני
                                  כן זה באג
                                  מקווה שייפתר בגרסה הבאה

                                  גמ"ח עזרה וייעוץ בנושאי מחשבים

                                  תגובה 1 תגובה אחרונה
                                  1
                                  • M mendel braun

                                    נמצאה שגיאה ב- XML של ממשק משתמש מותאם אישית של "כלי קודש":
                                    שורה: 154
                                    עמודה: 49
                                    קוד שגיאה 0x80004005
                                    מזהה פקד לא ידוע של ContextMenuListsNumbering :Office

                                    pcinfogmachP מנותק
                                    pcinfogmachP מנותק
                                    pcinfogmach
                                    מדריכים
                                    כתב נערך לאחרונה על ידי
                                    #1627

                                    @mendel-braun כתב:

                                    נמצאה שגיאה ב- XML של ממשק משתמש מותאם אישית של "כלי קודש":
                                    שורה: 154
                                    עמודה: 49
                                    קוד שגיאה 0x80004005
                                    מזהה פקד לא ידוע של ContextMenuListsNumbering :Office

                                    איזה גרסה אופיס?

                                    גמ"ח עזרה וייעוץ בנושאי מחשבים

                                    M תגובה 1 תגובה אחרונה
                                    0
                                    • דאנציגד מנותק
                                      דאנציגד מנותק
                                      דאנציג
                                      מדריכים
                                      כתב נערך לאחרונה על ידי דאנציג
                                      #1628

                                      @pcinfogmach

                                      לגבי קיצור מקשים מוורד לכלי קודש בוורד, נפל ברעיוני, שאולי על ידי URL זה כן יעבוד.
                                      כגון שעשו באוצריא / זית וכדו':

                                      URL = "zayit://search/" & SearchText
                                      

                                      @pcinfogmach מסקרנות שאלתי את GPT, ומעניין אותי האם הוא מבלבל תשכל, או שהוא מדבר לעניין:

                                      כן. ועכשיו, אחרי שבדקתי את הקוד של הפרויקט, יש דרך טובה לעשות את זה, ואפילו הייתי ממליץ עליה יותר מאשר ליצור vesto://.

                                      התוסף הוא VSTO Add-in אמיתי ל-Word, עם ThisAddIn.cs, Ribbon XML ומנהל Task Panes. כלומר, אנחנו יכולים להוסיף לו נקודת כניסה חיצונית שתאפשר למאקרו VBA להפעיל פעולה ספציפית.

                                      מה שאתה רוצה לעשות

                                      המטרה שלך היא למעשה:

                                      קיצור מקשים של Word → מאקרו VBA → הפעלת פקודה של VESTO

                                      לדוגמה:

                                      Ctrl+Alt+V
                                            ↓
                                      SearchInVesto()
                                            ↓
                                      VESTO מקבל את הטקסט המסומן
                                            ↓
                                      נפתח/מופעל כלי החיפוש של VESTO
                                      

                                      וזה בהחלט אפשרי.

                                      יש שתי דרכים

                                      1. URI Protocol — vesto://

                                      אפשר להוסיף ל-VESTO פרוטוקול Windows משל עצמו, למשל:

                                      vesto://search/שלום
                                      

                                      ואז המאקרו שלך יהיה כמעט זהה ל־SearchInZayit:

                                      Sub SearchInVesto()
                                      
                                          Dim SearchText As String
                                          Dim URL As String
                                      
                                          SearchText = Selection.Range.Text
                                          SearchText = Replace(SearchText, " ", "%20")
                                      
                                          URL = "vesto://search/" & SearchText
                                      
                                          CreateObject("WScript.Shell").Run URL
                                      
                                      End Sub
                                      

                                      אבל כאן יש חיסרון: צריך להעביר את הבקשה דרך Windows ולהכניס מנגנון URI לתוסף.


                                      2. דרך שאני חושב שעדיפה במקרה שלך — API קטן בין VBA ל-VESTO

                                      מכיוון ש-VESTO כבר רץ בתוך Word, אפשר להוסיף לו פקודה שניתנת לקריאה מבחוץ, למשל דרך:

                                      • WM_COPYDATA
                                      • Named Pipe
                                      • COM
                                      • או אפילו מנגנון פשוט יותר.

                                      ואז המאקרו יכול לומר:

                                      "VESTO, קח את הטקסט הזה ובצע את הפקודה X."

                                      זה מאפשר בעתיד לא רק חיפוש, אלא למשל:

                                      VESTO.Search("טקסט")
                                      VESTO.OpenKitveiHakodesh()
                                      VESTO.OpenRegex()
                                      VESTO.Format()
                                      

                                      וכדומה.

                                      ויש עוד אפשרות מעניינת במיוחד

                                      מכיוון שהתוסף כבר משתמש ב־Ribbon XML ומחלק את הפעולות לכפתורים, ייתכן שאפשר לא להוסיף שום תקשורת חיצונית בכלל.

                                      אפשר להוסיף ל-VESTO Ribbon command ייעודי, ואז לבדוק האם Word יכול להפעיל אותו באמצעות:

                                      Application.CommandBars.ExecuteMso "שם-הפקודה"
                                      

                                      אם זה יעבוד, זה יהיה הפתרון הכי נקי:

                                      Sub VestoSearch()
                                          Application.CommandBars.ExecuteMso "VestoSearch"
                                      End Sub
                                      

                                      ואז אתה נותן למאקרו קיצור מקשים דרך Word, בדיוק כפי שרצית.


                                      לכן הייתי בודק קודם את האפשרות השלישית, ורק אם היא לא מתאימה — בונה vesto://.

                                      היות שיש לנו את קוד המקור של VESTO, אני יכול לבדוק את KeliKodeshRibbon.cs ואת KeliKodeshRibbon.xml ולראות איך הפקודות של התוסף מוגדרות כרגע, ואז לומר לך אם אפשר להפעיל אותן ישירות מ-VBA ואם לא — מה השינוי הקטן ביותר בקוד שייתן לך את היכולת הזאת.

                                      כן. בדקתי את המבנה האמיתי של VESTO בקוד, ויש כאן חדשות טובות: לא צריך להוסיף vesto:// בכלל.

                                      במקרה הזה הייתי עושה מנגנון פשוט ונקי יותר:

                                      קיצור מקשים של Word → מאקרו VBA → פקודת VSTO חשופה → VESTO מפעיל את החיפוש.

                                      כבר עכשיו ב־VESTO יש contextMenu_Click, והוא יודע לקחת את הטקסט המסומן מתוך Word ולהעביר אותו ל־AppViewer.SearchFromHost(text, target).

                                      הייתי מרחיב בדיוק את המנגנון הזה.

                                      1. שינוי ב־KeliKodeshRibbon.cs

                                      בתוך המחלקה KeliKodeshRibbon, הוסף את הפונקציה הבאה:

                                      /// <summary>
                                      /// נקודת כניסה להפעלת חיפוש בכתבי הקודש מתוך VBA/Automation.
                                      /// לוקח את הטקסט המסומן כרגע ב-Word ומפעיל חיפוש FTS.
                                      /// </summary>
                                      public void SearchKitveiHakodeshFromVba()
                                      {
                                          try
                                          {
                                              string text = Globals.ThisAddIn.Application.Selection?.Text;
                                      
                                              if (string.IsNullOrWhiteSpace(text))
                                                  return;
                                      
                                              var appViewer = ShowKitveiHakodesh();
                                      
                                              appViewer?.SearchFromHost(text, "fts");
                                          }
                                          catch (Exception ex)
                                          {
                                              MessageBox.Show(
                                                  ex.Message,
                                                  "חיפוש בכתבי הקודש",
                                                  MessageBoxButtons.OK,
                                                  MessageBoxIcon.Error);
                                          }
                                      }
                                      

                                      זה למעשה ממחזר את המנגנון שכבר קיים בתוסף:

                                      string text = Globals.ThisAddIn.Application.Selection?.Text;
                                      ...
                                      var appViewer = ShowKitveiHakodesh();
                                      appViewer?.SearchFromHost(text, target);
                                      

                                      2. אבל יש נקודה חשובה

                                      VBA לא יכול פשוט לעשות:

                                      KeliKodeshRibbon.SearchKitveiHakodeshFromVba
                                      

                                      כי אובייקט ה־Ribbon אינו חשוף ל־VBA בצורה כזאת באופן אוטומטי.

                                      לכן אני ממליץ לעשות COM Automation קטן.

                                      ב־VSTO יש לנו כבר ThisAddIn.cs, שהוא נקודת הכניסה של התוסף.

                                      במקום לחשוף את ה־Ribbon עצמו, נחשוף אובייקט קטן בשם למשל:

                                      KleiKodeshApi
                                      

                                      עם פעולה:

                                      SearchKitveiHakodesh()
                                      

                                      ואז VBA יוכל לדבר איתו.


                                      3. ה־API

                                      צור קובץ חדש:

                                      KleiKodeshVsto/Automation/KleiKodeshApi.cs
                                      

                                      עם:

                                      using System;
                                      using System.Runtime.InteropServices;
                                      
                                      namespace KleiKodesh.Automation
                                      {
                                          [ComVisible(true)]
                                          [Guid("7D7E6F3B-8B7C-4D89-9E72-1A3C4F8B52A1")]
                                          [InterfaceType(ComInterfaceType.InterfaceIsDual)]
                                          public interface IKleiKodeshApi
                                          {
                                              void SearchKitveiHakodesh();
                                          }
                                      
                                          [ComVisible(true)]
                                          [Guid("A3B8D6F1-2E44-4A7D-9C91-6B2E8F4D1735")]
                                          [ClassInterface(ClassInterfaceType.None)]
                                          public class KleiKodeshApi : IKleiKodeshApi
                                          {
                                              public void SearchKitveiHakodesh()
                                              {
                                                  Globals.ThisAddIn.SearchKitveiHakodesh();
                                              }
                                          }
                                      }
                                      

                                      ואז ב־ThisAddIn.cs נוסיף:

                                      public void SearchKitveiHakodesh()
                                      {
                                          try
                                          {
                                              string text = Application.Selection?.Text;
                                      
                                              if (string.IsNullOrWhiteSpace(text))
                                                  return;
                                      
                                              var appViewer = Ribbon?.ShowKitveiHakodeshForAutomation();
                                      
                                              appViewer?.SearchFromHost(text, "fts");
                                          }
                                          catch (Exception ex)
                                          {
                                              System.Windows.Forms.MessageBox.Show(
                                                  ex.Message,
                                                  "חיפוש בכתבי הקודש",
                                                  System.Windows.Forms.MessageBoxButtons.OK,
                                                  System.Windows.Forms.MessageBoxIcon.Error);
                                          }
                                      }
                                      

                                      אבל כאן הייתי עושה שינוי קטן נוסף בארכיטקטורה, כדי לא להפוך את Ribbon לתלות של ה־API.

                                      כלומר, עדיף שהפעולה עצמה תהיה ב־ThisAddIn, ותשתמש ישירות ב־TaskPaneManager.


                                      4. הגרסה שאני ממליץ עליה בפועל

                                      ב־ThisAddIn.cs:

                                      public void SearchKitveiHakodesh()
                                      {
                                          try
                                          {
                                              string text = Application.Selection?.Text;
                                      
                                              if (string.IsNullOrWhiteSpace(text))
                                                  return;
                                      
                                              var pane = TaskPaneManager.Show(
                                                  () => new KitveiHakodeshLib.AppViewer
                                                  {
                                                      ShowPopOutButton = true
                                                  },
                                                  "כתבי הקודש",
                                                  610,
                                                  popOutBehavior: true);
                                      
                                              var appViewer = pane?.Control as KitveiHakodeshLib.AppViewer;
                                      
                                              appViewer?.SearchFromHost(text, "fts");
                                          }
                                          catch (Exception ex)
                                          {
                                              System.Windows.Forms.MessageBox.Show(
                                                  ex.Message,
                                                  "חיפוש בכתבי הקודש",
                                                  System.Windows.Forms.MessageBoxButtons.OK,
                                                  System.Windows.Forms.MessageBoxIcon.Error);
                                          }
                                      }
                                      

                                      זה משתמש באותו TaskPaneManager.Show שבו התוסף משתמש כבר עכשיו כדי ליצור/למחזר את חלונית כתבי הקודש.


                                      5. ה־VBA

                                      ואז המאקרו יכול להיות:

                                      Sub SearchInVesto()
                                      
                                          Dim Vesto As Object
                                      
                                          Set Vesto = CreateObject("KleiKodesh.Automation.KleiKodeshApi")
                                      
                                          Vesto.SearchKitveiHakodesh
                                      
                                      End Sub
                                      

                                      ואז:

                                      סמן טקסט → קיצור מקשים → המאקרו → VESTO → חיפוש.


                                      אבל יש לי הצעה אפילו טובה יותר

                                      מכיוון שהמטרה שלך היא קיצור מקשים, הייתי בונה את ה־API מראש בצורה שתאפשר לך כמה פקודות:

                                      public interface IKleiKodeshApi
                                      {
                                          void SearchKitveiHakodesh();
                                          void SearchCatalog();
                                          void OpenKitveiHakodesh();
                                      }
                                      

                                      ואז ב־VBA:

                                      Sub VestoSearch()
                                          Dim Vesto As Object
                                          Set Vesto = CreateObject("KleiKodesh.Automation.KleiKodeshApi")
                                          Vesto.SearchKitveiHakodesh
                                      End Sub
                                      

                                      ובהמשך:

                                      Sub VestoCatalogSearch()
                                          Dim Vesto As Object
                                          Set Vesto = CreateObject("KleiKodesh.Automation.KleiKodeshApi")
                                          Vesto.SearchCatalog
                                      End Sub
                                      

                                      כך תוכל להקצות קיצור מקשים נפרד לכל פעולה של VESTO, למרות ש-Word עצמו לא מאפשר לך להגדיר קיצור ישירות לכפתורי התוסף.

                                      דבר אחד חשוב לפני שאתה משנה את הקוד

                                      ה־CreateObject("KleiKodesh.Automation.KleiKodeshApi") דורש שה־COM class יירשם ב־Windows. ב־VSTO זה לא תמיד קורה אוטומטית רק בגלל [ComVisible(true)].

                                      לכן לא הייתי מכניס עדיין את קוד ה־COM הזה לפרויקט ומקמפל. כדאי קודם לבדוק את ThisAddIn.cs ואת קובץ הפרויקט .csproj, ובעיקר איך המתקין של KleiKodesh מתקין ורושם את ה־VSTO. המתקין נמצא בפרויקט Build/Installer, וה־README מאשר שזה המנגנון שמתקין את תוסף ה־VSTO.

                                      pcinfogmachP תגובה 1 תגובה אחרונה
                                      1
                                      • יאיר דניאלי מנותק
                                        יאיר דניאלי מנותק
                                        יאיר דניאל
                                        כתב נערך לאחרונה על ידי
                                        #1629

                                        כבוד‌​‌‌​‌​​​​​‌ הרב @pcinfogmach, היום בסד"א השתמשתי בתוסף שלך, אחרי תקופה ארוכה שלא השתמשתי בו, בינה"ז ושות'.
                                        ומה מאוד השתוממתי עד מאוד, לראותו בפנים חדשות (גירסה 9.0.4) התוסף הקטן והנוח שלך, הפך למשהו מדהים! תוכנה בפנ"ע ממש, עם מלא אפשרויות, נוחות שימוש גדולה, ממשק נוח עד מאוד! ועוד ועוד ועוד!!!
                                        יש לך טעם טוב בעיצוב ובהנגשה של דברים, זה מדהים הדבר הזה!
                                        ראיתי גם שהוספת חיפוש בקבצי המחשב - הוא עובד בצורה מהירה ממש, על איזה מנוע זה יושב?

                                        (הייתי מוסיף בקובץ התקנה - שיריץ סקריפט שיפעיל את אפשרות החיפוש במחשבי ווידנוס - מכיון שיש משתמשים רבים שלא יבינו את משמעות הודעת השגיאה בחיפוש - במחשבים בהם לא מופעל שירות החיפוש הלז)

                                        ועוד משהו... ראיתי שעדיין לא נכנס האפשרות להצמיד תיקיות אישיות לדף הבית של התוסף, זה יתווסף מתי שהוא?

                                        התקנתי את זה לחבר שקנה מחשב חדש, אין לו יד ורגל במחשבים, והוא ממש נהנה מזה, הוא אמר לי, אני פותח רמב"ן וזה נראה כמו רמב"ן (תצוגה צרה במסך...) זה נוח ללמוד, להעתיק, לחפש וכו'.

                                        חיילך לאורייתא!

                                        pcinfogmachP 6 תגובות תגובה אחרונה
                                        5
                                        • דאנציגד דאנציג

                                          @pcinfogmach

                                          לגבי קיצור מקשים מוורד לכלי קודש בוורד, נפל ברעיוני, שאולי על ידי URL זה כן יעבוד.
                                          כגון שעשו באוצריא / זית וכדו':

                                          URL = "zayit://search/" & SearchText
                                          

                                          @pcinfogmach מסקרנות שאלתי את GPT, ומעניין אותי האם הוא מבלבל תשכל, או שהוא מדבר לעניין:

                                          כן. ועכשיו, אחרי שבדקתי את הקוד של הפרויקט, יש דרך טובה לעשות את זה, ואפילו הייתי ממליץ עליה יותר מאשר ליצור vesto://.

                                          התוסף הוא VSTO Add-in אמיתי ל-Word, עם ThisAddIn.cs, Ribbon XML ומנהל Task Panes. כלומר, אנחנו יכולים להוסיף לו נקודת כניסה חיצונית שתאפשר למאקרו VBA להפעיל פעולה ספציפית.

                                          מה שאתה רוצה לעשות

                                          המטרה שלך היא למעשה:

                                          קיצור מקשים של Word → מאקרו VBA → הפעלת פקודה של VESTO

                                          לדוגמה:

                                          Ctrl+Alt+V
                                                ↓
                                          SearchInVesto()
                                                ↓
                                          VESTO מקבל את הטקסט המסומן
                                                ↓
                                          נפתח/מופעל כלי החיפוש של VESTO
                                          

                                          וזה בהחלט אפשרי.

                                          יש שתי דרכים

                                          1. URI Protocol — vesto://

                                          אפשר להוסיף ל-VESTO פרוטוקול Windows משל עצמו, למשל:

                                          vesto://search/שלום
                                          

                                          ואז המאקרו שלך יהיה כמעט זהה ל־SearchInZayit:

                                          Sub SearchInVesto()
                                          
                                              Dim SearchText As String
                                              Dim URL As String
                                          
                                              SearchText = Selection.Range.Text
                                              SearchText = Replace(SearchText, " ", "%20")
                                          
                                              URL = "vesto://search/" & SearchText
                                          
                                              CreateObject("WScript.Shell").Run URL
                                          
                                          End Sub
                                          

                                          אבל כאן יש חיסרון: צריך להעביר את הבקשה דרך Windows ולהכניס מנגנון URI לתוסף.


                                          2. דרך שאני חושב שעדיפה במקרה שלך — API קטן בין VBA ל-VESTO

                                          מכיוון ש-VESTO כבר רץ בתוך Word, אפשר להוסיף לו פקודה שניתנת לקריאה מבחוץ, למשל דרך:

                                          • WM_COPYDATA
                                          • Named Pipe
                                          • COM
                                          • או אפילו מנגנון פשוט יותר.

                                          ואז המאקרו יכול לומר:

                                          "VESTO, קח את הטקסט הזה ובצע את הפקודה X."

                                          זה מאפשר בעתיד לא רק חיפוש, אלא למשל:

                                          VESTO.Search("טקסט")
                                          VESTO.OpenKitveiHakodesh()
                                          VESTO.OpenRegex()
                                          VESTO.Format()
                                          

                                          וכדומה.

                                          ויש עוד אפשרות מעניינת במיוחד

                                          מכיוון שהתוסף כבר משתמש ב־Ribbon XML ומחלק את הפעולות לכפתורים, ייתכן שאפשר לא להוסיף שום תקשורת חיצונית בכלל.

                                          אפשר להוסיף ל-VESTO Ribbon command ייעודי, ואז לבדוק האם Word יכול להפעיל אותו באמצעות:

                                          Application.CommandBars.ExecuteMso "שם-הפקודה"
                                          

                                          אם זה יעבוד, זה יהיה הפתרון הכי נקי:

                                          Sub VestoSearch()
                                              Application.CommandBars.ExecuteMso "VestoSearch"
                                          End Sub
                                          

                                          ואז אתה נותן למאקרו קיצור מקשים דרך Word, בדיוק כפי שרצית.


                                          לכן הייתי בודק קודם את האפשרות השלישית, ורק אם היא לא מתאימה — בונה vesto://.

                                          היות שיש לנו את קוד המקור של VESTO, אני יכול לבדוק את KeliKodeshRibbon.cs ואת KeliKodeshRibbon.xml ולראות איך הפקודות של התוסף מוגדרות כרגע, ואז לומר לך אם אפשר להפעיל אותן ישירות מ-VBA ואם לא — מה השינוי הקטן ביותר בקוד שייתן לך את היכולת הזאת.

                                          כן. בדקתי את המבנה האמיתי של VESTO בקוד, ויש כאן חדשות טובות: לא צריך להוסיף vesto:// בכלל.

                                          במקרה הזה הייתי עושה מנגנון פשוט ונקי יותר:

                                          קיצור מקשים של Word → מאקרו VBA → פקודת VSTO חשופה → VESTO מפעיל את החיפוש.

                                          כבר עכשיו ב־VESTO יש contextMenu_Click, והוא יודע לקחת את הטקסט המסומן מתוך Word ולהעביר אותו ל־AppViewer.SearchFromHost(text, target).

                                          הייתי מרחיב בדיוק את המנגנון הזה.

                                          1. שינוי ב־KeliKodeshRibbon.cs

                                          בתוך המחלקה KeliKodeshRibbon, הוסף את הפונקציה הבאה:

                                          /// <summary>
                                          /// נקודת כניסה להפעלת חיפוש בכתבי הקודש מתוך VBA/Automation.
                                          /// לוקח את הטקסט המסומן כרגע ב-Word ומפעיל חיפוש FTS.
                                          /// </summary>
                                          public void SearchKitveiHakodeshFromVba()
                                          {
                                              try
                                              {
                                                  string text = Globals.ThisAddIn.Application.Selection?.Text;
                                          
                                                  if (string.IsNullOrWhiteSpace(text))
                                                      return;
                                          
                                                  var appViewer = ShowKitveiHakodesh();
                                          
                                                  appViewer?.SearchFromHost(text, "fts");
                                              }
                                              catch (Exception ex)
                                              {
                                                  MessageBox.Show(
                                                      ex.Message,
                                                      "חיפוש בכתבי הקודש",
                                                      MessageBoxButtons.OK,
                                                      MessageBoxIcon.Error);
                                              }
                                          }
                                          

                                          זה למעשה ממחזר את המנגנון שכבר קיים בתוסף:

                                          string text = Globals.ThisAddIn.Application.Selection?.Text;
                                          ...
                                          var appViewer = ShowKitveiHakodesh();
                                          appViewer?.SearchFromHost(text, target);
                                          

                                          2. אבל יש נקודה חשובה

                                          VBA לא יכול פשוט לעשות:

                                          KeliKodeshRibbon.SearchKitveiHakodeshFromVba
                                          

                                          כי אובייקט ה־Ribbon אינו חשוף ל־VBA בצורה כזאת באופן אוטומטי.

                                          לכן אני ממליץ לעשות COM Automation קטן.

                                          ב־VSTO יש לנו כבר ThisAddIn.cs, שהוא נקודת הכניסה של התוסף.

                                          במקום לחשוף את ה־Ribbon עצמו, נחשוף אובייקט קטן בשם למשל:

                                          KleiKodeshApi
                                          

                                          עם פעולה:

                                          SearchKitveiHakodesh()
                                          

                                          ואז VBA יוכל לדבר איתו.


                                          3. ה־API

                                          צור קובץ חדש:

                                          KleiKodeshVsto/Automation/KleiKodeshApi.cs
                                          

                                          עם:

                                          using System;
                                          using System.Runtime.InteropServices;
                                          
                                          namespace KleiKodesh.Automation
                                          {
                                              [ComVisible(true)]
                                              [Guid("7D7E6F3B-8B7C-4D89-9E72-1A3C4F8B52A1")]
                                              [InterfaceType(ComInterfaceType.InterfaceIsDual)]
                                              public interface IKleiKodeshApi
                                              {
                                                  void SearchKitveiHakodesh();
                                              }
                                          
                                              [ComVisible(true)]
                                              [Guid("A3B8D6F1-2E44-4A7D-9C91-6B2E8F4D1735")]
                                              [ClassInterface(ClassInterfaceType.None)]
                                              public class KleiKodeshApi : IKleiKodeshApi
                                              {
                                                  public void SearchKitveiHakodesh()
                                                  {
                                                      Globals.ThisAddIn.SearchKitveiHakodesh();
                                                  }
                                              }
                                          }
                                          

                                          ואז ב־ThisAddIn.cs נוסיף:

                                          public void SearchKitveiHakodesh()
                                          {
                                              try
                                              {
                                                  string text = Application.Selection?.Text;
                                          
                                                  if (string.IsNullOrWhiteSpace(text))
                                                      return;
                                          
                                                  var appViewer = Ribbon?.ShowKitveiHakodeshForAutomation();
                                          
                                                  appViewer?.SearchFromHost(text, "fts");
                                              }
                                              catch (Exception ex)
                                              {
                                                  System.Windows.Forms.MessageBox.Show(
                                                      ex.Message,
                                                      "חיפוש בכתבי הקודש",
                                                      System.Windows.Forms.MessageBoxButtons.OK,
                                                      System.Windows.Forms.MessageBoxIcon.Error);
                                              }
                                          }
                                          

                                          אבל כאן הייתי עושה שינוי קטן נוסף בארכיטקטורה, כדי לא להפוך את Ribbon לתלות של ה־API.

                                          כלומר, עדיף שהפעולה עצמה תהיה ב־ThisAddIn, ותשתמש ישירות ב־TaskPaneManager.


                                          4. הגרסה שאני ממליץ עליה בפועל

                                          ב־ThisAddIn.cs:

                                          public void SearchKitveiHakodesh()
                                          {
                                              try
                                              {
                                                  string text = Application.Selection?.Text;
                                          
                                                  if (string.IsNullOrWhiteSpace(text))
                                                      return;
                                          
                                                  var pane = TaskPaneManager.Show(
                                                      () => new KitveiHakodeshLib.AppViewer
                                                      {
                                                          ShowPopOutButton = true
                                                      },
                                                      "כתבי הקודש",
                                                      610,
                                                      popOutBehavior: true);
                                          
                                                  var appViewer = pane?.Control as KitveiHakodeshLib.AppViewer;
                                          
                                                  appViewer?.SearchFromHost(text, "fts");
                                              }
                                              catch (Exception ex)
                                              {
                                                  System.Windows.Forms.MessageBox.Show(
                                                      ex.Message,
                                                      "חיפוש בכתבי הקודש",
                                                      System.Windows.Forms.MessageBoxButtons.OK,
                                                      System.Windows.Forms.MessageBoxIcon.Error);
                                              }
                                          }
                                          

                                          זה משתמש באותו TaskPaneManager.Show שבו התוסף משתמש כבר עכשיו כדי ליצור/למחזר את חלונית כתבי הקודש.


                                          5. ה־VBA

                                          ואז המאקרו יכול להיות:

                                          Sub SearchInVesto()
                                          
                                              Dim Vesto As Object
                                          
                                              Set Vesto = CreateObject("KleiKodesh.Automation.KleiKodeshApi")
                                          
                                              Vesto.SearchKitveiHakodesh
                                          
                                          End Sub
                                          

                                          ואז:

                                          סמן טקסט → קיצור מקשים → המאקרו → VESTO → חיפוש.


                                          אבל יש לי הצעה אפילו טובה יותר

                                          מכיוון שהמטרה שלך היא קיצור מקשים, הייתי בונה את ה־API מראש בצורה שתאפשר לך כמה פקודות:

                                          public interface IKleiKodeshApi
                                          {
                                              void SearchKitveiHakodesh();
                                              void SearchCatalog();
                                              void OpenKitveiHakodesh();
                                          }
                                          

                                          ואז ב־VBA:

                                          Sub VestoSearch()
                                              Dim Vesto As Object
                                              Set Vesto = CreateObject("KleiKodesh.Automation.KleiKodeshApi")
                                              Vesto.SearchKitveiHakodesh
                                          End Sub
                                          

                                          ובהמשך:

                                          Sub VestoCatalogSearch()
                                              Dim Vesto As Object
                                              Set Vesto = CreateObject("KleiKodesh.Automation.KleiKodeshApi")
                                              Vesto.SearchCatalog
                                          End Sub
                                          

                                          כך תוכל להקצות קיצור מקשים נפרד לכל פעולה של VESTO, למרות ש-Word עצמו לא מאפשר לך להגדיר קיצור ישירות לכפתורי התוסף.

                                          דבר אחד חשוב לפני שאתה משנה את הקוד

                                          ה־CreateObject("KleiKodesh.Automation.KleiKodeshApi") דורש שה־COM class יירשם ב־Windows. ב־VSTO זה לא תמיד קורה אוטומטית רק בגלל [ComVisible(true)].

                                          לכן לא הייתי מכניס עדיין את קוד ה־COM הזה לפרויקט ומקמפל. כדאי קודם לבדוק את ThisAddIn.cs ואת קובץ הפרויקט .csproj, ובעיקר איך המתקין של KleiKodesh מתקין ורושם את ה־VSTO. המתקין נמצא בפרויקט Build/Installer, וה־README מאשר שזה המנגנון שמתקין את תוסף ה־VSTO.

                                          pcinfogmachP מנותק
                                          pcinfogmachP מנותק
                                          pcinfogmach
                                          מדריכים
                                          כתב נערך לאחרונה על ידי
                                          #1630

                                          @דאנציג כתב:

                                          לגבי קיצור מקשים מוורד לכלי קודש בוורד, נפל ברעיוני, שאולי על ידי URL זה כן יעבוד.
                                          כגון שעשו באוצריא / זית וכדו':

                                          URL = "zayit://search/" & SearchText

                                          לא רלוונטי לתוסף אין למחשב גישה חיצונית אליו
                                          על ידי מאקרו ודאי אפשרי אני נמנע מכך עקב שיקולים של באגים בעיקר

                                          גמ"ח עזרה וייעוץ בנושאי מחשבים

                                          יאיר דניאלי תגובה 1 תגובה אחרונה
                                          0

                                          שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                                          נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                                          בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                                          הרשמה התחברות

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • פופולרי
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר