שיתוף: סקריפט תיקון פריסת מקלדת למשתמשי אקסל
-
תיאור הבעיה
משתמשי אקסל משתמשים הרבה בתווים
<
ו->
בתוך נוסחאות
כאשר מופעלת פריסת מקלדת עברי, הייעוד של המקשים מתהפך, כאשר המקש הימני מקליד את הפותח (או הסמל שמשמעותו בתוך נוסחה: "less than") והמקש השמאלי מקליד את הסוגר (או: הסמל שמשמעותו בתוך נוסחה "more than")
בד"כ (בכתיבה רגילה של פרוזה, או יותר נכון, כאשר כיוון הקטע הוא מימין לשמאל) זה רצוי, כי הפותח והסוגר בעברית נראים הפוכים,
הבעיה הוא שבנוסחאות באקסל, זה לא מה שרוצים.
להסבר התופעה ב א ר י כ ו ת עיין כאןהפתרון
סקריפט שמזהה אם החלון הפעיל הוא חלון אקסל, ובמקרה שכן, הוא מחליף את המקשים שגם בעברית הם יתנהגו כמו באנגלית
קובץ EXE:
Excel Keyboard Fix.exe[גירסא שמתקנת גם את התווים
(
ו-)
]:
Excel Keyboard Fix.exe(אפשר לשים אותו בתיקיית ההפעלה בתפריט ההתחלה והוא ירוץ אוטומטי בשעת הפעלה)
קוד המקור (בשפת AutoHotKey)
#SingleInstance force KeyboardLayout_Hebrew := 0x40D040D #IfWinActive ahk_exe EXCEL.EXE >:: hwnd := WinExist("A") currentKeyboardLayout := getKeyboardLayout(hwnd) if (currentKeyboardLayout = KeyboardLayout_Hebrew) { Send < return } send > return <:: hwnd := WinExist("A") currentKeyboardLayout := getKeyboardLayout(hwnd) if (currentKeyboardLayout = KeyboardLayout_Hebrew) { Send > return } send < return ;gets the keyboard layout for window with specified hwnd getKeyboardLayout(hwnd, ByRef keyBoardLayout = "") { idThread := getWindowThreadProcessId(hwnd) keyboardLayout := DllCall("user32.dll\GetKeyboardLayout" , "uint", idThread, "uint") return keyboardLayout } getWindowThreadProcessId(hwnd) { return dllCall("user32\GetWindowThreadProcessId", "Uint", hwnd) }
באגים ושיפורים
נא לדווח על באגים ולהציע שיפורים באשכול זה.
(משתמשי אקסל: האם לדעתכם יש צורך להוסיף קוד דומה עבור התווים(
ו-)
?)קרדיט
@מתמחה-במחשבים שהעלה את הבעיה כאן
הקוד לזיהוי פריסת מקלדת מפה -
@yossiz אמר בשיתוף: סקריפט תיקון פריסת מקלדת למשתמשי אקסל:
(משתמשי אקסל: האם לדעתכם יש צורך להוסיף קוד דומה עבור התווים
(
ו-)
?)בתווים
()
במידה והוכנס הפוך, אז אקסל מתריע על כך ומציע תיקון (או שלא) בעת אישור הנוסחה, לכך לי לא הפריע אף פעם, הייתי מכניס ואקסל היה מתקן (או מתריע על נוסחה לא תקינה).
לעומת זו, ב<>
מבחינת אקסל, זה תקין, השאלה האם התכוונתי לגדול מ- או קטן מ-, וזה אקסל כבר לא יכול לשאול אותי למה התכוונתי... -
@מתמחה-במחשבים אמר בשיתוף: סקריפט תיקון פריסת מקלדת למשתמשי אקסל:
בתווים
()
במידה והוכנס הפוך, אז אקסל מתריע על כך ומציע תיקון (או שלא) בעת אישור הנוסחהלא תמיד.
(אולי זה תלוי אם יש אחד או כמה)@yossiz לטעמי זה חשוב גם לסוגריים.
השאלה אם לא ניתן לעשות א"ז בצורה של תוספת והרחבה לאקסל (כמו אקסל פלוס), שאז ניתן להגדיר שזה ייפתח אוטומטית בכל אקסל שנפתח ? -
@ליכט אמר בשיתוף: סקריפט תיקון פריסת מקלדת למשתמשי אקסל:
לטעמי זה חשוב גם לסוגריים
הוספתי למעלה
השאלה אם לא ניתן לעשות א"ז בצורה של תוספת והרחבה לאקסל (כמו אקסל פלוס),
זה יהיה הרבה יותר מורכב
שאז ניתן להגדיר שזה ייפתח אוטומטית בכל אקסל שנפתח ?
אפשר לשים את זה בתיקיית "הפעלה" בתפריט ההתחלה שירוץ אוטומטי בכל כניסה. (זה משפיע על המקלדת רק בתוך אקסל, כך שזה לא יפריע לתוכנות אחרות).
-
@מתמחה-במחשבים אמר בשיתוף: סקריפט תיקון פריסת מקלדת למשתמשי אקסל:
(נראה שמיקם את האנגלית איפה שהעברית, ולא הפוך)
@מתמחה-במחשבים אמר בשיתוף: סקריפט תיקון פריסת מקלדת למשתמשי אקסל:
זה המטרה, שמקשים בפריסת אנגלית ימוקמו מחדש כפי הפריסה בעברית
הפוך
-
@yossiz למה הפוך
אני רציתי שהמקשים של העברית ימוקמו איפה שהפריסה של אנגלית
כלומר שהסוגר יהיה לפני הפותח
אבל בתוכנה שלך כתבת הפוך
שהאנגלית יהיה לפי העברית
כלומר שהפותח של האנגלית יהיה מימין לסוגר (לא כמו שהיה עד עכשיו שהפותח האנגלי הוא משמאל לסוגר כפי כיוון הכתיבה)לי לא משנה, זה רק עניין איפה להקליד
-
@מתמחה-במחשבים אמר בשיתוף: סקריפט תיקון פריסת מקלדת למשתמשי אקסל:
אני רציתי שהמקשים של העברית ימוקמו איפה שהפריסה של אנגלית
כלומר שהסוגר יהיה לפני הפותח
אבל בתוכנה שלך כתבת הפוך
שהאנגלית יהיה לפי העברית
כלומר שהפותח של האנגלית יהיה מימין לסוגר (לא כמו שהיה עד עכשיו שהפותח האנגלי הוא משמאל לסוגר כפי כיוון הכתיבה)אחד משנינו מבולבל...
לא שיניתי כלום בפריסה האנגלי -
@yossiz אמר בשיתוף: סקריפט תיקון פריסת מקלדת למשתמשי אקסל:
@ליכט אמר בשיתוף: סקריפט תיקון פריסת מקלדת למשתמשי אקסל:
לטעמי זה חשוב גם לסוגריים
הוספתי למעלה
תמחק גם את השורה בסוף (השאלה האם להוסיף גם לסוגריים)...
-
@מתמחה-במחשבים ככל שאני מנסה, אני לא מצליח לשכפל את התוצאות שאתה מקבל.
(אפילו הוספתי ערכת שפה עברית ושיניתי את שפת התצוגה באקסל שלי לראות אם זה משפיע) -
@מתמחה-במחשבים כן...
אולי אחד משנינו לא יודע בין ימינו לשמאלו -
@מתמחה-במחשבים אין צורך, אני מאמין לך
-
@מתמחה-במחשבים אתה יכול בבקשה להריץ את הסקריפט הזאת
kblo.exe
תריץ אותו,
שנה פריסת מקלדת לעברית, אח"כ תלחץ F11, זה יקפיץ הודעה עם מזהה פריסת המקלדת.
שנה פריסת מקלדת לאנגלית, שוב תלחץ F11, זה יקפיץ הודעה עם מזהה פריסת המקלדת.
מה התוצאות?