[{"data":1,"prerenderedAt":2387},["ShallowReactive",2],{"content-/tatsujin-cube-automation":3,"all-pages-for-dir":2367,"related-/tatsujin-cube-automation":2368,"og-image-/tatsujin-cube-automation":2386},{"id":4,"title":5,"body":6,"category":2350,"concepts":2351,"description":2352,"extension":2353,"meta":2354,"navigation":189,"ogImage":2351,"path":2355,"project_name":2351,"published":2356,"publishedAt":2357,"seo":2358,"source":2351,"stem":2359,"tags":2360,"todo":2365,"unpublished":2356,"updatedAt":2351,"__hash__":2366},"pages/2026-01/2026-01-08/tatsujin-cube-automation.md","達人Cube自動化の仮説 - Windows UI Automation APIを使ったアプローチ",{"type":7,"value":8,"toc":2335},"minimark",[9,13,17,21,28,34,38,46,49,119,122,135,138,143,208,212,215,989,992,1010,1014,1017,2192,2196,2199,2204,2217,2222,2230,2233,2236,2243,2246,2249,2275,2278,2305,2308,2331],[10,11,5],"h1",{"id":12},"達人cube自動化の仮説-windows-ui-automation-apiを使ったアプローチ",[14,15,16],"h2",{"id":16},"背景",[18,19,20],"p",{},"達人Cubeと所得税の達人には、ショートカットキーが割り当てられていないメニューが多数存在する。繰り返し操作を自動化することで、業務効率を大幅に改善できる可能性がある。",[18,22,23],{},[24,25],"img",{"alt":26,"src":27},"達人Cubeのメイン画面","/2026-01/2026-01-08/tatsujin-cube-main.png",[18,29,30],{},[24,31],{"alt":32,"src":33},"所得税の達人","/2026-01/2026-01-08/shotokuzei-tatsujin.png",[14,35,37],{"id":36},"結論仮説","結論（仮説）",[18,39,40,41,45],{},"Windows UI Automation APIを使えば、達人Cubeのような.NET/Windows Formsアプリケーションを自動操作できる可能性が高い。Pythonの ",[42,43,44],"code",{},"uiautomation"," ライブラリを使用してUI要素を取得・操作する。",[14,47,48],{"id":48},"自動化アプローチの選択肢",[50,51,52,68],"table",{},[53,54,55],"thead",{},[56,57,58,62,65],"tr",{},[59,60,61],"th",{},"ツール",[59,63,64],{},"特徴",[59,66,67],{},"向いているケース",[69,70,71,86,97,108],"tbody",{},[56,72,73,80,83],{},[74,75,76],"td",{},[77,78,79],"strong",{},"UI Automation API",[74,81,82],{},"Windows公式API、高信頼性",[74,84,85],{},"今回のケース",[56,87,88,91,94],{},[74,89,90],{},"Power Automate Desktop",[74,92,93],{},"GUI操作、ノーコード",[74,95,96],{},"RPAで十分な場合",[56,98,99,102,105],{},[74,100,101],{},"AutoHotkey",[74,103,104],{},"軽量、スクリプト言語",[74,106,107],{},"キーボード/マウス自動化",[56,109,110,113,116],{},[74,111,112],{},"Python + pyautogui",[74,114,115],{},"座標ベース",[74,117,118],{},"画像認識が必要な場合",[18,120,121],{},"UI Automation APIを選択した理由：",[123,124,125,129,132],"ul",{},[126,127,128],"li",{},"座標ではなくUI要素を直接操作できる",[126,130,131],{},"ウィンドウ位置が変わっても動作する",[126,133,134],{},"Pythonから柔軟に制御可能",[14,136,137],{"id":137},"調査用スクリプト",[139,140,142],"h3",{"id":141},"環境セットアップuv使用","環境セットアップ（uv使用）",[144,145,150],"pre",{"className":146,"code":147,"language":148,"meta":149,"style":149},"language-bash shiki shiki-themes vitesse-light vitesse-light","# プロジェクト初期化\nuv init tatsujin-automation\ncd tatsujin-automation\n\n# 依存関係の追加\nuv add uiautomation\n","bash","",[42,151,152,161,175,184,191,197],{"__ignoreMap":149},[153,154,157],"span",{"class":155,"line":156},"line",1,[153,158,160],{"class":159},"sxvE3","# プロジェクト初期化\n",[153,162,164,168,172],{"class":155,"line":163},2,[153,165,167],{"class":166},"senZ8","uv",[153,169,171],{"class":170},"sdGka"," init",[153,173,174],{"class":170}," tatsujin-automation\n",[153,176,178,182],{"class":155,"line":177},3,[153,179,181],{"class":180},"sz8Xr","cd",[153,183,174],{"class":170},[153,185,187],{"class":155,"line":186},4,[153,188,190],{"emptyLinePlaceholder":189},true,"\n",[153,192,194],{"class":155,"line":193},5,[153,195,196],{"class":159},"# 依存関係の追加\n",[153,198,200,202,205],{"class":155,"line":199},6,[153,201,167],{"class":166},[153,203,204],{"class":170}," add",[153,206,207],{"class":170}," uiautomation\n",[139,209,211],{"id":210},"ui要素調査スクリプト","UI要素調査スクリプト",[18,213,214],{},"まず達人Cubeのウィンドウ構造を調査する。",[144,216,220],{"className":217,"code":218,"language":219,"meta":149,"style":149},"language-python shiki shiki-themes vitesse-light vitesse-light","# inspect_tatsujin.py\nimport uiautomation as auto\n\n\ndef find_tatsujin_windows():\n    \"\"\"達人関連のウィンドウを探す\"\"\"\n    results = []\n    for win in auto.GetRootControl().GetChildren():\n        name = win.Name or \"\"\n        if \"達人\" in name or \"Cube\" in name:\n            results.append(win)\n            print(f\"Found: {name}\")\n    return results\n\n\ndef dump_controls(control, depth=0, max_depth=3):\n    \"\"\"ウィンドウの子要素を再帰的に表示\"\"\"\n    if depth > max_depth:\n        return\n\n    indent = \"  \" * depth\n    name = control.Name or \"(no name)\"\n    ctrl_type = control.ControlTypeName\n    auto_id = control.AutomationId or \"\"\n\n    print(f\"{indent}[{ctrl_type}] {name}\")\n    if auto_id:\n        print(f\"{indent}  AutomationId: {auto_id}\")\n\n    for child in control.GetChildren():\n        dump_controls(child, depth + 1, max_depth)\n\n\ndef list_all_windows():\n    \"\"\"全ウィンドウを表示\"\"\"\n    print(\"=== 現在のウィンドウ一覧 ===\")\n    for win in auto.GetRootControl().GetChildren():\n        print(f\"  - {win.Name}\")\n\n\nif __name__ == \"__main__\":\n    windows = find_tatsujin_windows()\n\n    if windows:\n        for win in windows:\n            print(f\"\\n=== {win.Name} の構造 ===\")\n            dump_controls(win, max_depth=4)\n    else:\n        print(\"達人Cubeが見つかりません\")\n        list_all_windows()\n","python",[42,221,222,227,243,247,251,264,276,288,317,339,377,397,425,434,439,444,482,492,508,514,519,538,563,578,597,602,644,654,686,691,709,736,741,746,756,766,782,803,830,835,840,861,874,879,889,903,935,957,965,981],{"__ignoreMap":149},[153,223,224],{"class":155,"line":156},[153,225,226],{"class":159},"# inspect_tatsujin.py\n",[153,228,229,233,237,240],{"class":155,"line":163},[153,230,232],{"class":231},"sHkkW","import",[153,234,236],{"class":235},"sG7-3"," uiautomation ",[153,238,239],{"class":231},"as",[153,241,242],{"class":235}," auto\n",[153,244,245],{"class":155,"line":177},[153,246,190],{"emptyLinePlaceholder":189},[153,248,249],{"class":155,"line":186},[153,250,190],{"emptyLinePlaceholder":189},[153,252,253,257,260],{"class":155,"line":193},[153,254,256],{"class":255},"stQ0i","def",[153,258,259],{"class":166}," find_tatsujin_windows",[153,261,263],{"class":262},"shFtX","():\n",[153,265,266,270,273],{"class":155,"line":199},[153,267,269],{"class":268},"sMJiu","    \"\"\"",[153,271,272],{"class":170},"達人関連のウィンドウを探す",[153,274,275],{"class":268},"\"\"\"\n",[153,277,279,282,285],{"class":155,"line":278},7,[153,280,281],{"class":235},"    results ",[153,283,284],{"class":262},"=",[153,286,287],{"class":262}," []\n",[153,289,291,294,297,300,303,306,309,312,315],{"class":155,"line":290},8,[153,292,293],{"class":231},"    for",[153,295,296],{"class":235}," win ",[153,298,299],{"class":231},"in",[153,301,302],{"class":235}," auto",[153,304,305],{"class":262},".",[153,307,308],{"class":235},"GetRootControl",[153,310,311],{"class":262},"().",[153,313,314],{"class":235},"GetChildren",[153,316,263],{"class":262},[153,318,320,323,325,328,330,333,336],{"class":155,"line":319},9,[153,321,322],{"class":235},"        name ",[153,324,284],{"class":262},[153,326,327],{"class":235}," win",[153,329,305],{"class":262},[153,331,332],{"class":235},"Name ",[153,334,335],{"class":255},"or",[153,337,338],{"class":268}," \"\"\n",[153,340,342,345,348,351,354,357,360,362,364,367,369,371,374],{"class":155,"line":341},10,[153,343,344],{"class":231},"        if",[153,346,347],{"class":268}," \"",[153,349,350],{"class":170},"達人",[153,352,353],{"class":268},"\"",[153,355,356],{"class":255}," in",[153,358,359],{"class":235}," name ",[153,361,335],{"class":255},[153,363,347],{"class":268},[153,365,366],{"class":170},"Cube",[153,368,353],{"class":268},[153,370,356],{"class":255},[153,372,373],{"class":235}," name",[153,375,376],{"class":262},":\n",[153,378,380,383,385,388,391,394],{"class":155,"line":379},11,[153,381,382],{"class":235},"            results",[153,384,305],{"class":262},[153,386,387],{"class":235},"append",[153,389,390],{"class":262},"(",[153,392,393],{"class":235},"win",[153,395,396],{"class":262},")\n",[153,398,400,403,405,408,411,415,418,421,423],{"class":155,"line":399},12,[153,401,402],{"class":180},"            print",[153,404,390],{"class":262},[153,406,407],{"class":255},"f",[153,409,410],{"class":170},"\"Found: ",[153,412,414],{"class":413},"snbK4","{",[153,416,417],{"class":235},"name",[153,419,420],{"class":413},"}",[153,422,353],{"class":170},[153,424,396],{"class":262},[153,426,428,431],{"class":155,"line":427},13,[153,429,430],{"class":231},"    return",[153,432,433],{"class":235}," results\n",[153,435,437],{"class":155,"line":436},14,[153,438,190],{"emptyLinePlaceholder":189},[153,440,442],{"class":155,"line":441},15,[153,443,190],{"emptyLinePlaceholder":189},[153,445,447,449,452,454,457,460,463,465,469,471,474,476,479],{"class":155,"line":446},16,[153,448,256],{"class":255},[153,450,451],{"class":166}," dump_controls",[153,453,390],{"class":262},[153,455,456],{"class":235},"control",[153,458,459],{"class":262},",",[153,461,462],{"class":235}," depth",[153,464,284],{"class":255},[153,466,468],{"class":467},"sM54T","0",[153,470,459],{"class":262},[153,472,473],{"class":235}," max_depth",[153,475,284],{"class":255},[153,477,478],{"class":467},"3",[153,480,481],{"class":262},"):\n",[153,483,485,487,490],{"class":155,"line":484},17,[153,486,269],{"class":268},[153,488,489],{"class":170},"ウィンドウの子要素を再帰的に表示",[153,491,275],{"class":268},[153,493,495,498,501,504,506],{"class":155,"line":494},18,[153,496,497],{"class":231},"    if",[153,499,500],{"class":235}," depth ",[153,502,503],{"class":255},">",[153,505,473],{"class":235},[153,507,376],{"class":262},[153,509,511],{"class":155,"line":510},19,[153,512,513],{"class":231},"        return\n",[153,515,517],{"class":155,"line":516},20,[153,518,190],{"emptyLinePlaceholder":189},[153,520,522,525,527,529,532,535],{"class":155,"line":521},21,[153,523,524],{"class":235},"    indent ",[153,526,284],{"class":262},[153,528,347],{"class":268},[153,530,531],{"class":268},"  \"",[153,533,534],{"class":255}," *",[153,536,537],{"class":235}," depth\n",[153,539,541,544,546,549,551,553,555,557,560],{"class":155,"line":540},22,[153,542,543],{"class":235},"    name ",[153,545,284],{"class":262},[153,547,548],{"class":235}," control",[153,550,305],{"class":262},[153,552,332],{"class":235},[153,554,335],{"class":255},[153,556,347],{"class":268},[153,558,559],{"class":170},"(no name)",[153,561,562],{"class":268},"\"\n",[153,564,566,569,571,573,575],{"class":155,"line":565},23,[153,567,568],{"class":235},"    ctrl_type ",[153,570,284],{"class":262},[153,572,548],{"class":235},[153,574,305],{"class":262},[153,576,577],{"class":235},"ControlTypeName\n",[153,579,581,584,586,588,590,593,595],{"class":155,"line":580},24,[153,582,583],{"class":235},"    auto_id ",[153,585,284],{"class":262},[153,587,548],{"class":235},[153,589,305],{"class":262},[153,591,592],{"class":235},"AutomationId ",[153,594,335],{"class":255},[153,596,338],{"class":268},[153,598,600],{"class":155,"line":599},25,[153,601,190],{"emptyLinePlaceholder":189},[153,603,605,608,610,612,614,616,619,621,624,626,629,631,634,636,638,640,642],{"class":155,"line":604},26,[153,606,607],{"class":180},"    print",[153,609,390],{"class":262},[153,611,407],{"class":255},[153,613,353],{"class":170},[153,615,414],{"class":413},[153,617,618],{"class":235},"indent",[153,620,420],{"class":413},[153,622,623],{"class":170},"[",[153,625,414],{"class":413},[153,627,628],{"class":235},"ctrl_type",[153,630,420],{"class":413},[153,632,633],{"class":170},"] ",[153,635,414],{"class":413},[153,637,417],{"class":235},[153,639,420],{"class":413},[153,641,353],{"class":170},[153,643,396],{"class":262},[153,645,647,649,652],{"class":155,"line":646},27,[153,648,497],{"class":231},[153,650,651],{"class":235}," auto_id",[153,653,376],{"class":262},[153,655,657,660,662,664,666,668,670,672,675,677,680,682,684],{"class":155,"line":656},28,[153,658,659],{"class":180},"        print",[153,661,390],{"class":262},[153,663,407],{"class":255},[153,665,353],{"class":170},[153,667,414],{"class":413},[153,669,618],{"class":235},[153,671,420],{"class":413},[153,673,674],{"class":170},"  AutomationId: ",[153,676,414],{"class":413},[153,678,679],{"class":235},"auto_id",[153,681,420],{"class":413},[153,683,353],{"class":170},[153,685,396],{"class":262},[153,687,689],{"class":155,"line":688},29,[153,690,190],{"emptyLinePlaceholder":189},[153,692,694,696,699,701,703,705,707],{"class":155,"line":693},30,[153,695,293],{"class":231},[153,697,698],{"class":235}," child ",[153,700,299],{"class":231},[153,702,548],{"class":235},[153,704,305],{"class":262},[153,706,314],{"class":235},[153,708,263],{"class":262},[153,710,712,715,717,720,722,724,727,730,732,734],{"class":155,"line":711},31,[153,713,714],{"class":235},"        dump_controls",[153,716,390],{"class":262},[153,718,719],{"class":235},"child",[153,721,459],{"class":262},[153,723,500],{"class":235},[153,725,726],{"class":255},"+",[153,728,729],{"class":467}," 1",[153,731,459],{"class":262},[153,733,473],{"class":235},[153,735,396],{"class":262},[153,737,739],{"class":155,"line":738},32,[153,740,190],{"emptyLinePlaceholder":189},[153,742,744],{"class":155,"line":743},33,[153,745,190],{"emptyLinePlaceholder":189},[153,747,749,751,754],{"class":155,"line":748},34,[153,750,256],{"class":255},[153,752,753],{"class":166}," list_all_windows",[153,755,263],{"class":262},[153,757,759,761,764],{"class":155,"line":758},35,[153,760,269],{"class":268},[153,762,763],{"class":170},"全ウィンドウを表示",[153,765,275],{"class":268},[153,767,769,771,773,775,778,780],{"class":155,"line":768},36,[153,770,607],{"class":180},[153,772,390],{"class":262},[153,774,353],{"class":268},[153,776,777],{"class":170},"=== 現在のウィンドウ一覧 ===",[153,779,353],{"class":268},[153,781,396],{"class":262},[153,783,785,787,789,791,793,795,797,799,801],{"class":155,"line":784},37,[153,786,293],{"class":231},[153,788,296],{"class":235},[153,790,299],{"class":231},[153,792,302],{"class":235},[153,794,305],{"class":262},[153,796,308],{"class":235},[153,798,311],{"class":262},[153,800,314],{"class":235},[153,802,263],{"class":262},[153,804,806,808,810,812,815,817,819,821,824,826,828],{"class":155,"line":805},38,[153,807,659],{"class":180},[153,809,390],{"class":262},[153,811,407],{"class":255},[153,813,814],{"class":170},"\"  - ",[153,816,414],{"class":413},[153,818,393],{"class":235},[153,820,305],{"class":262},[153,822,823],{"class":235},"Name",[153,825,420],{"class":413},[153,827,353],{"class":170},[153,829,396],{"class":262},[153,831,833],{"class":155,"line":832},39,[153,834,190],{"emptyLinePlaceholder":189},[153,836,838],{"class":155,"line":837},40,[153,839,190],{"emptyLinePlaceholder":189},[153,841,843,846,849,852,854,857,859],{"class":155,"line":842},41,[153,844,845],{"class":231},"if",[153,847,848],{"class":180}," __name__",[153,850,851],{"class":255}," ==",[153,853,347],{"class":268},[153,855,856],{"class":170},"__main__",[153,858,353],{"class":268},[153,860,376],{"class":262},[153,862,864,867,869,871],{"class":155,"line":863},42,[153,865,866],{"class":235},"    windows ",[153,868,284],{"class":262},[153,870,259],{"class":235},[153,872,873],{"class":262},"()\n",[153,875,877],{"class":155,"line":876},43,[153,878,190],{"emptyLinePlaceholder":189},[153,880,882,884,887],{"class":155,"line":881},44,[153,883,497],{"class":231},[153,885,886],{"class":235}," windows",[153,888,376],{"class":262},[153,890,892,895,897,899,901],{"class":155,"line":891},45,[153,893,894],{"class":231},"        for",[153,896,296],{"class":235},[153,898,299],{"class":231},[153,900,886],{"class":235},[153,902,376],{"class":262},[153,904,906,908,910,912,914,917,920,922,924,926,928,930,933],{"class":155,"line":905},46,[153,907,402],{"class":180},[153,909,390],{"class":262},[153,911,407],{"class":255},[153,913,353],{"class":170},[153,915,916],{"class":413},"\\n",[153,918,919],{"class":170},"=== ",[153,921,414],{"class":413},[153,923,393],{"class":235},[153,925,305],{"class":262},[153,927,823],{"class":235},[153,929,420],{"class":413},[153,931,932],{"class":170}," の構造 ===\"",[153,934,396],{"class":262},[153,936,938,941,943,945,947,950,952,955],{"class":155,"line":937},47,[153,939,940],{"class":235},"            dump_controls",[153,942,390],{"class":262},[153,944,393],{"class":235},[153,946,459],{"class":262},[153,948,473],{"class":949},"s4oTP",[153,951,284],{"class":262},[153,953,954],{"class":467},"4",[153,956,396],{"class":262},[153,958,960,963],{"class":155,"line":959},48,[153,961,962],{"class":231},"    else",[153,964,376],{"class":262},[153,966,968,970,972,974,977,979],{"class":155,"line":967},49,[153,969,659],{"class":180},[153,971,390],{"class":262},[153,973,353],{"class":268},[153,975,976],{"class":170},"達人Cubeが見つかりません",[153,978,353],{"class":268},[153,980,396],{"class":262},[153,982,984,987],{"class":155,"line":983},50,[153,985,986],{"class":235},"        list_all_windows",[153,988,873],{"class":262},[18,990,991],{},"実行：",[144,993,995],{"className":146,"code":994,"language":148,"meta":149,"style":149},"uv run python inspect_tatsujin.py\n",[42,996,997],{"__ignoreMap":149},[153,998,999,1001,1004,1007],{"class":155,"line":156},[153,1000,167],{"class":166},[153,1002,1003],{"class":170}," run",[153,1005,1006],{"class":170}," python",[153,1008,1009],{"class":170}," inspect_tatsujin.py\n",[139,1011,1013],{"id":1012},"操作用スクリプト仮","操作用スクリプト（仮）",[18,1015,1016],{},"調査結果を元に調整が必要になる。",[144,1018,1020],{"className":217,"code":1019,"language":219,"meta":149,"style":149},"# tatsujin_automation.py\nimport uiautomation as auto\nimport time\n\n\nclass TatsujinAutomation:\n    def __init__(self):\n        self.cube = None\n        self.shotokuzei = None\n\n    def connect_cube(self):\n        \"\"\"達人Cubeに接続\"\"\"\n        self.cube = auto.WindowControl(searchDepth=1, SubName=\"達人Cube\")\n        if self.cube.Exists(3):\n            print(f\"接続成功: {self.cube.Name}\")\n            return True\n        print(\"達人Cubeが見つかりません\")\n        return False\n\n    def open_shotokuzei(self):\n        \"\"\"所得税の達人を開く\"\"\"\n        if not self.cube:\n            return False\n\n        # 「所得税」ボタンを探してクリック\n        # 実際の要素名は調査スクリプトで確認\n        btn = self.cube.ButtonControl(Name=\"所得税\")\n        if not btn.Exists(2):\n            btn = self.cube.Control(SubName=\"所得税\")\n\n        if btn.Exists(2):\n            btn.Click()\n            time.sleep(2)\n            return True\n        return False\n\n    def connect_shotokuzei(self):\n        \"\"\"所得税の達人に接続\"\"\"\n        self.shotokuzei = auto.WindowControl(searchDepth=1, SubName=\"所得税の達人\")\n        return self.shotokuzei.Exists(3)\n\n    def click_menu(self, menu_path: list[str]):\n        \"\"\"メニューを開く\n\n        Args:\n            menu_path: メニューのパス（例: ['ファイル(F)', '新規作成']）\n        \"\"\"\n        if not self.shotokuzei:\n            return False\n\n        current = self.shotokuzei\n        for menu_name in menu_path:\n            item = current.MenuItemControl(SubName=menu_name)\n            if item.Exists(2):\n                item.Click()\n                time.sleep(0.3)\n                current = item\n            else:\n                print(f\"メニューが見つかりません: {menu_name}\")\n                return False\n        return True\n\n    def click_toolbar(self, button_name: str):\n        \"\"\"ツールバーボタンをクリック\"\"\"\n        if not self.shotokuzei:\n            return False\n\n        btn = self.shotokuzei.ButtonControl(Name=button_name)\n        if btn.Exists(2):\n            btn.Click()\n            return True\n\n        # ToolBarの中を探す\n        toolbar = self.shotokuzei.ToolBarControl()\n        if toolbar.Exists():\n            btn = toolbar.ButtonControl(Name=button_name)\n            if btn.Exists(2):\n                btn.Click()\n                return True\n\n        print(f\"ボタンが見つかりません: {button_name}\")\n        return False\n\n\nif __name__ == \"__main__\":\n    ta = TatsujinAutomation()\n\n    if ta.connect_cube():\n        ta.open_shotokuzei()\n\n        if ta.connect_shotokuzei():\n            # メニュー操作の例\n            ta.click_menu([\"ファイル(F)\", \"開く\"])\n",[42,1021,1022,1027,1037,1044,1048,1052,1063,1078,1093,1106,1110,1123,1133,1176,1199,1227,1235,1249,1257,1261,1274,1283,1298,1304,1308,1313,1318,1351,1371,1404,1408,1424,1436,1452,1458,1464,1468,1481,1490,1528,1549,1553,1583,1590,1594,1599,1604,1609,1623,1629,1633,1648,1662,1689,1708,1720,1737,1748,1756,1779,1787,1794,1799,1823,1833,1848,1855,1860,1888,1905,1916,1923,1928,1934,1955,1969,1992,2009,2021,2028,2033,2055,2062,2067,2072,2089,2101,2106,2121,2134,2139,2153,2159],{"__ignoreMap":149},[153,1023,1024],{"class":155,"line":156},[153,1025,1026],{"class":159},"# tatsujin_automation.py\n",[153,1028,1029,1031,1033,1035],{"class":155,"line":163},[153,1030,232],{"class":231},[153,1032,236],{"class":235},[153,1034,239],{"class":231},[153,1036,242],{"class":235},[153,1038,1039,1041],{"class":155,"line":177},[153,1040,232],{"class":231},[153,1042,1043],{"class":235}," time\n",[153,1045,1046],{"class":155,"line":186},[153,1047,190],{"emptyLinePlaceholder":189},[153,1049,1050],{"class":155,"line":193},[153,1051,190],{"emptyLinePlaceholder":189},[153,1053,1054,1057,1061],{"class":155,"line":199},[153,1055,1056],{"class":255},"class",[153,1058,1060],{"class":1059},"sSkh3"," TatsujinAutomation",[153,1062,376],{"class":262},[153,1064,1065,1068,1071,1073,1076],{"class":155,"line":278},[153,1066,1067],{"class":255},"    def",[153,1069,1070],{"class":180}," __init__",[153,1072,390],{"class":262},[153,1074,1075],{"class":235},"self",[153,1077,481],{"class":262},[153,1079,1080,1083,1085,1088,1090],{"class":155,"line":290},[153,1081,1082],{"class":413},"        self",[153,1084,305],{"class":262},[153,1086,1087],{"class":235},"cube ",[153,1089,284],{"class":262},[153,1091,1092],{"class":231}," None\n",[153,1094,1095,1097,1099,1102,1104],{"class":155,"line":319},[153,1096,1082],{"class":413},[153,1098,305],{"class":262},[153,1100,1101],{"class":235},"shotokuzei ",[153,1103,284],{"class":262},[153,1105,1092],{"class":231},[153,1107,1108],{"class":155,"line":341},[153,1109,190],{"emptyLinePlaceholder":189},[153,1111,1112,1114,1117,1119,1121],{"class":155,"line":379},[153,1113,1067],{"class":255},[153,1115,1116],{"class":166}," connect_cube",[153,1118,390],{"class":262},[153,1120,1075],{"class":235},[153,1122,481],{"class":262},[153,1124,1125,1128,1131],{"class":155,"line":399},[153,1126,1127],{"class":268},"        \"\"\"",[153,1129,1130],{"class":170},"達人Cubeに接続",[153,1132,275],{"class":268},[153,1134,1135,1137,1139,1141,1143,1145,1147,1150,1152,1155,1157,1160,1162,1165,1167,1169,1172,1174],{"class":155,"line":427},[153,1136,1082],{"class":413},[153,1138,305],{"class":262},[153,1140,1087],{"class":235},[153,1142,284],{"class":262},[153,1144,302],{"class":235},[153,1146,305],{"class":262},[153,1148,1149],{"class":235},"WindowControl",[153,1151,390],{"class":262},[153,1153,1154],{"class":949},"searchDepth",[153,1156,284],{"class":262},[153,1158,1159],{"class":467},"1",[153,1161,459],{"class":262},[153,1163,1164],{"class":949}," SubName",[153,1166,284],{"class":262},[153,1168,353],{"class":268},[153,1170,1171],{"class":170},"達人Cube",[153,1173,353],{"class":268},[153,1175,396],{"class":262},[153,1177,1178,1180,1183,1185,1188,1190,1193,1195,1197],{"class":155,"line":436},[153,1179,344],{"class":231},[153,1181,1182],{"class":413}," self",[153,1184,305],{"class":262},[153,1186,1187],{"class":235},"cube",[153,1189,305],{"class":262},[153,1191,1192],{"class":235},"Exists",[153,1194,390],{"class":262},[153,1196,478],{"class":467},[153,1198,481],{"class":262},[153,1200,1201,1203,1205,1207,1210,1213,1215,1217,1219,1221,1223,1225],{"class":155,"line":441},[153,1202,402],{"class":180},[153,1204,390],{"class":262},[153,1206,407],{"class":255},[153,1208,1209],{"class":170},"\"接続成功: ",[153,1211,1212],{"class":413},"{self",[153,1214,305],{"class":262},[153,1216,1187],{"class":235},[153,1218,305],{"class":262},[153,1220,823],{"class":235},[153,1222,420],{"class":413},[153,1224,353],{"class":170},[153,1226,396],{"class":262},[153,1228,1229,1232],{"class":155,"line":446},[153,1230,1231],{"class":231},"            return",[153,1233,1234],{"class":231}," True\n",[153,1236,1237,1239,1241,1243,1245,1247],{"class":155,"line":484},[153,1238,659],{"class":180},[153,1240,390],{"class":262},[153,1242,353],{"class":268},[153,1244,976],{"class":170},[153,1246,353],{"class":268},[153,1248,396],{"class":262},[153,1250,1251,1254],{"class":155,"line":494},[153,1252,1253],{"class":231},"        return",[153,1255,1256],{"class":231}," False\n",[153,1258,1259],{"class":155,"line":510},[153,1260,190],{"emptyLinePlaceholder":189},[153,1262,1263,1265,1268,1270,1272],{"class":155,"line":516},[153,1264,1067],{"class":255},[153,1266,1267],{"class":166}," open_shotokuzei",[153,1269,390],{"class":262},[153,1271,1075],{"class":235},[153,1273,481],{"class":262},[153,1275,1276,1278,1281],{"class":155,"line":521},[153,1277,1127],{"class":268},[153,1279,1280],{"class":170},"所得税の達人を開く",[153,1282,275],{"class":268},[153,1284,1285,1287,1290,1292,1294,1296],{"class":155,"line":540},[153,1286,344],{"class":231},[153,1288,1289],{"class":255}," not",[153,1291,1182],{"class":413},[153,1293,305],{"class":262},[153,1295,1187],{"class":235},[153,1297,376],{"class":262},[153,1299,1300,1302],{"class":155,"line":565},[153,1301,1231],{"class":231},[153,1303,1256],{"class":231},[153,1305,1306],{"class":155,"line":580},[153,1307,190],{"emptyLinePlaceholder":189},[153,1309,1310],{"class":155,"line":599},[153,1311,1312],{"class":159},"        # 「所得税」ボタンを探してクリック\n",[153,1314,1315],{"class":155,"line":604},[153,1316,1317],{"class":159},"        # 実際の要素名は調査スクリプトで確認\n",[153,1319,1320,1323,1325,1327,1329,1331,1333,1336,1338,1340,1342,1344,1347,1349],{"class":155,"line":646},[153,1321,1322],{"class":235},"        btn ",[153,1324,284],{"class":262},[153,1326,1182],{"class":413},[153,1328,305],{"class":262},[153,1330,1187],{"class":235},[153,1332,305],{"class":262},[153,1334,1335],{"class":235},"ButtonControl",[153,1337,390],{"class":262},[153,1339,823],{"class":949},[153,1341,284],{"class":262},[153,1343,353],{"class":268},[153,1345,1346],{"class":170},"所得税",[153,1348,353],{"class":268},[153,1350,396],{"class":262},[153,1352,1353,1355,1357,1360,1362,1364,1366,1369],{"class":155,"line":656},[153,1354,344],{"class":231},[153,1356,1289],{"class":255},[153,1358,1359],{"class":235}," btn",[153,1361,305],{"class":262},[153,1363,1192],{"class":235},[153,1365,390],{"class":262},[153,1367,1368],{"class":467},"2",[153,1370,481],{"class":262},[153,1372,1373,1376,1378,1380,1382,1384,1386,1389,1391,1394,1396,1398,1400,1402],{"class":155,"line":688},[153,1374,1375],{"class":235},"            btn ",[153,1377,284],{"class":262},[153,1379,1182],{"class":413},[153,1381,305],{"class":262},[153,1383,1187],{"class":235},[153,1385,305],{"class":262},[153,1387,1388],{"class":235},"Control",[153,1390,390],{"class":262},[153,1392,1393],{"class":949},"SubName",[153,1395,284],{"class":262},[153,1397,353],{"class":268},[153,1399,1346],{"class":170},[153,1401,353],{"class":268},[153,1403,396],{"class":262},[153,1405,1406],{"class":155,"line":693},[153,1407,190],{"emptyLinePlaceholder":189},[153,1409,1410,1412,1414,1416,1418,1420,1422],{"class":155,"line":711},[153,1411,344],{"class":231},[153,1413,1359],{"class":235},[153,1415,305],{"class":262},[153,1417,1192],{"class":235},[153,1419,390],{"class":262},[153,1421,1368],{"class":467},[153,1423,481],{"class":262},[153,1425,1426,1429,1431,1434],{"class":155,"line":738},[153,1427,1428],{"class":235},"            btn",[153,1430,305],{"class":262},[153,1432,1433],{"class":235},"Click",[153,1435,873],{"class":262},[153,1437,1438,1441,1443,1446,1448,1450],{"class":155,"line":743},[153,1439,1440],{"class":235},"            time",[153,1442,305],{"class":262},[153,1444,1445],{"class":235},"sleep",[153,1447,390],{"class":262},[153,1449,1368],{"class":467},[153,1451,396],{"class":262},[153,1453,1454,1456],{"class":155,"line":748},[153,1455,1231],{"class":231},[153,1457,1234],{"class":231},[153,1459,1460,1462],{"class":155,"line":758},[153,1461,1253],{"class":231},[153,1463,1256],{"class":231},[153,1465,1466],{"class":155,"line":768},[153,1467,190],{"emptyLinePlaceholder":189},[153,1469,1470,1472,1475,1477,1479],{"class":155,"line":784},[153,1471,1067],{"class":255},[153,1473,1474],{"class":166}," connect_shotokuzei",[153,1476,390],{"class":262},[153,1478,1075],{"class":235},[153,1480,481],{"class":262},[153,1482,1483,1485,1488],{"class":155,"line":805},[153,1484,1127],{"class":268},[153,1486,1487],{"class":170},"所得税の達人に接続",[153,1489,275],{"class":268},[153,1491,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526],{"class":155,"line":832},[153,1493,1082],{"class":413},[153,1495,305],{"class":262},[153,1497,1101],{"class":235},[153,1499,284],{"class":262},[153,1501,302],{"class":235},[153,1503,305],{"class":262},[153,1505,1149],{"class":235},[153,1507,390],{"class":262},[153,1509,1154],{"class":949},[153,1511,284],{"class":262},[153,1513,1159],{"class":467},[153,1515,459],{"class":262},[153,1517,1164],{"class":949},[153,1519,284],{"class":262},[153,1521,353],{"class":268},[153,1523,32],{"class":170},[153,1525,353],{"class":268},[153,1527,396],{"class":262},[153,1529,1530,1532,1534,1536,1539,1541,1543,1545,1547],{"class":155,"line":837},[153,1531,1253],{"class":231},[153,1533,1182],{"class":413},[153,1535,305],{"class":262},[153,1537,1538],{"class":235},"shotokuzei",[153,1540,305],{"class":262},[153,1542,1192],{"class":235},[153,1544,390],{"class":262},[153,1546,478],{"class":467},[153,1548,396],{"class":262},[153,1550,1551],{"class":155,"line":842},[153,1552,190],{"emptyLinePlaceholder":189},[153,1554,1555,1557,1560,1562,1564,1566,1569,1572,1575,1577,1580],{"class":155,"line":863},[153,1556,1067],{"class":255},[153,1558,1559],{"class":166}," click_menu",[153,1561,390],{"class":262},[153,1563,1075],{"class":235},[153,1565,459],{"class":262},[153,1567,1568],{"class":235}," menu_path",[153,1570,1571],{"class":262},":",[153,1573,1574],{"class":235}," list",[153,1576,623],{"class":262},[153,1578,1579],{"class":180},"str",[153,1581,1582],{"class":262},"]):\n",[153,1584,1585,1587],{"class":155,"line":876},[153,1586,1127],{"class":268},[153,1588,1589],{"class":170},"メニューを開く\n",[153,1591,1592],{"class":155,"line":881},[153,1593,190],{"emptyLinePlaceholder":189},[153,1595,1596],{"class":155,"line":891},[153,1597,1598],{"class":170},"        Args:\n",[153,1600,1601],{"class":155,"line":905},[153,1602,1603],{"class":170},"            menu_path: メニューのパス（例: ['ファイル(F)', '新規作成']）\n",[153,1605,1606],{"class":155,"line":937},[153,1607,1608],{"class":268},"        \"\"\"\n",[153,1610,1611,1613,1615,1617,1619,1621],{"class":155,"line":959},[153,1612,344],{"class":231},[153,1614,1289],{"class":255},[153,1616,1182],{"class":413},[153,1618,305],{"class":262},[153,1620,1538],{"class":235},[153,1622,376],{"class":262},[153,1624,1625,1627],{"class":155,"line":967},[153,1626,1231],{"class":231},[153,1628,1256],{"class":231},[153,1630,1631],{"class":155,"line":983},[153,1632,190],{"emptyLinePlaceholder":189},[153,1634,1636,1639,1641,1643,1645],{"class":155,"line":1635},51,[153,1637,1638],{"class":235},"        current ",[153,1640,284],{"class":262},[153,1642,1182],{"class":413},[153,1644,305],{"class":262},[153,1646,1647],{"class":235},"shotokuzei\n",[153,1649,1651,1653,1656,1658,1660],{"class":155,"line":1650},52,[153,1652,894],{"class":231},[153,1654,1655],{"class":235}," menu_name ",[153,1657,299],{"class":231},[153,1659,1568],{"class":235},[153,1661,376],{"class":262},[153,1663,1665,1668,1670,1673,1675,1678,1680,1682,1684,1687],{"class":155,"line":1664},53,[153,1666,1667],{"class":235},"            item ",[153,1669,284],{"class":262},[153,1671,1672],{"class":235}," current",[153,1674,305],{"class":262},[153,1676,1677],{"class":235},"MenuItemControl",[153,1679,390],{"class":262},[153,1681,1393],{"class":949},[153,1683,284],{"class":262},[153,1685,1686],{"class":235},"menu_name",[153,1688,396],{"class":262},[153,1690,1692,1695,1698,1700,1702,1704,1706],{"class":155,"line":1691},54,[153,1693,1694],{"class":231},"            if",[153,1696,1697],{"class":235}," item",[153,1699,305],{"class":262},[153,1701,1192],{"class":235},[153,1703,390],{"class":262},[153,1705,1368],{"class":467},[153,1707,481],{"class":262},[153,1709,1711,1714,1716,1718],{"class":155,"line":1710},55,[153,1712,1713],{"class":235},"                item",[153,1715,305],{"class":262},[153,1717,1433],{"class":235},[153,1719,873],{"class":262},[153,1721,1723,1726,1728,1730,1732,1735],{"class":155,"line":1722},56,[153,1724,1725],{"class":235},"                time",[153,1727,305],{"class":262},[153,1729,1445],{"class":235},[153,1731,390],{"class":262},[153,1733,1734],{"class":467},"0.3",[153,1736,396],{"class":262},[153,1738,1740,1743,1745],{"class":155,"line":1739},57,[153,1741,1742],{"class":235},"                current ",[153,1744,284],{"class":262},[153,1746,1747],{"class":235}," item\n",[153,1749,1751,1754],{"class":155,"line":1750},58,[153,1752,1753],{"class":231},"            else",[153,1755,376],{"class":262},[153,1757,1759,1762,1764,1766,1769,1771,1773,1775,1777],{"class":155,"line":1758},59,[153,1760,1761],{"class":180},"                print",[153,1763,390],{"class":262},[153,1765,407],{"class":255},[153,1767,1768],{"class":170},"\"メニューが見つかりません: ",[153,1770,414],{"class":413},[153,1772,1686],{"class":235},[153,1774,420],{"class":413},[153,1776,353],{"class":170},[153,1778,396],{"class":262},[153,1780,1782,1785],{"class":155,"line":1781},60,[153,1783,1784],{"class":231},"                return",[153,1786,1256],{"class":231},[153,1788,1790,1792],{"class":155,"line":1789},61,[153,1791,1253],{"class":231},[153,1793,1234],{"class":231},[153,1795,1797],{"class":155,"line":1796},62,[153,1798,190],{"emptyLinePlaceholder":189},[153,1800,1802,1804,1807,1809,1811,1813,1816,1818,1821],{"class":155,"line":1801},63,[153,1803,1067],{"class":255},[153,1805,1806],{"class":166}," click_toolbar",[153,1808,390],{"class":262},[153,1810,1075],{"class":235},[153,1812,459],{"class":262},[153,1814,1815],{"class":235}," button_name",[153,1817,1571],{"class":262},[153,1819,1820],{"class":180}," str",[153,1822,481],{"class":262},[153,1824,1826,1828,1831],{"class":155,"line":1825},64,[153,1827,1127],{"class":268},[153,1829,1830],{"class":170},"ツールバーボタンをクリック",[153,1832,275],{"class":268},[153,1834,1836,1838,1840,1842,1844,1846],{"class":155,"line":1835},65,[153,1837,344],{"class":231},[153,1839,1289],{"class":255},[153,1841,1182],{"class":413},[153,1843,305],{"class":262},[153,1845,1538],{"class":235},[153,1847,376],{"class":262},[153,1849,1851,1853],{"class":155,"line":1850},66,[153,1852,1231],{"class":231},[153,1854,1256],{"class":231},[153,1856,1858],{"class":155,"line":1857},67,[153,1859,190],{"emptyLinePlaceholder":189},[153,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879,1881,1883,1886],{"class":155,"line":1862},68,[153,1864,1322],{"class":235},[153,1866,284],{"class":262},[153,1868,1182],{"class":413},[153,1870,305],{"class":262},[153,1872,1538],{"class":235},[153,1874,305],{"class":262},[153,1876,1335],{"class":235},[153,1878,390],{"class":262},[153,1880,823],{"class":949},[153,1882,284],{"class":262},[153,1884,1885],{"class":235},"button_name",[153,1887,396],{"class":262},[153,1889,1891,1893,1895,1897,1899,1901,1903],{"class":155,"line":1890},69,[153,1892,344],{"class":231},[153,1894,1359],{"class":235},[153,1896,305],{"class":262},[153,1898,1192],{"class":235},[153,1900,390],{"class":262},[153,1902,1368],{"class":467},[153,1904,481],{"class":262},[153,1906,1908,1910,1912,1914],{"class":155,"line":1907},70,[153,1909,1428],{"class":235},[153,1911,305],{"class":262},[153,1913,1433],{"class":235},[153,1915,873],{"class":262},[153,1917,1919,1921],{"class":155,"line":1918},71,[153,1920,1231],{"class":231},[153,1922,1234],{"class":231},[153,1924,1926],{"class":155,"line":1925},72,[153,1927,190],{"emptyLinePlaceholder":189},[153,1929,1931],{"class":155,"line":1930},73,[153,1932,1933],{"class":159},"        # ToolBarの中を探す\n",[153,1935,1937,1940,1942,1944,1946,1948,1950,1953],{"class":155,"line":1936},74,[153,1938,1939],{"class":235},"        toolbar ",[153,1941,284],{"class":262},[153,1943,1182],{"class":413},[153,1945,305],{"class":262},[153,1947,1538],{"class":235},[153,1949,305],{"class":262},[153,1951,1952],{"class":235},"ToolBarControl",[153,1954,873],{"class":262},[153,1956,1958,1960,1963,1965,1967],{"class":155,"line":1957},75,[153,1959,344],{"class":231},[153,1961,1962],{"class":235}," toolbar",[153,1964,305],{"class":262},[153,1966,1192],{"class":235},[153,1968,263],{"class":262},[153,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990],{"class":155,"line":1971},76,[153,1973,1375],{"class":235},[153,1975,284],{"class":262},[153,1977,1962],{"class":235},[153,1979,305],{"class":262},[153,1981,1335],{"class":235},[153,1983,390],{"class":262},[153,1985,823],{"class":949},[153,1987,284],{"class":262},[153,1989,1885],{"class":235},[153,1991,396],{"class":262},[153,1993,1995,1997,1999,2001,2003,2005,2007],{"class":155,"line":1994},77,[153,1996,1694],{"class":231},[153,1998,1359],{"class":235},[153,2000,305],{"class":262},[153,2002,1192],{"class":235},[153,2004,390],{"class":262},[153,2006,1368],{"class":467},[153,2008,481],{"class":262},[153,2010,2012,2015,2017,2019],{"class":155,"line":2011},78,[153,2013,2014],{"class":235},"                btn",[153,2016,305],{"class":262},[153,2018,1433],{"class":235},[153,2020,873],{"class":262},[153,2022,2024,2026],{"class":155,"line":2023},79,[153,2025,1784],{"class":231},[153,2027,1234],{"class":231},[153,2029,2031],{"class":155,"line":2030},80,[153,2032,190],{"emptyLinePlaceholder":189},[153,2034,2036,2038,2040,2042,2045,2047,2049,2051,2053],{"class":155,"line":2035},81,[153,2037,659],{"class":180},[153,2039,390],{"class":262},[153,2041,407],{"class":255},[153,2043,2044],{"class":170},"\"ボタンが見つかりません: ",[153,2046,414],{"class":413},[153,2048,1885],{"class":235},[153,2050,420],{"class":413},[153,2052,353],{"class":170},[153,2054,396],{"class":262},[153,2056,2058,2060],{"class":155,"line":2057},82,[153,2059,1253],{"class":231},[153,2061,1256],{"class":231},[153,2063,2065],{"class":155,"line":2064},83,[153,2066,190],{"emptyLinePlaceholder":189},[153,2068,2070],{"class":155,"line":2069},84,[153,2071,190],{"emptyLinePlaceholder":189},[153,2073,2075,2077,2079,2081,2083,2085,2087],{"class":155,"line":2074},85,[153,2076,845],{"class":231},[153,2078,848],{"class":180},[153,2080,851],{"class":255},[153,2082,347],{"class":268},[153,2084,856],{"class":170},[153,2086,353],{"class":268},[153,2088,376],{"class":262},[153,2090,2092,2095,2097,2099],{"class":155,"line":2091},86,[153,2093,2094],{"class":235},"    ta ",[153,2096,284],{"class":262},[153,2098,1060],{"class":235},[153,2100,873],{"class":262},[153,2102,2104],{"class":155,"line":2103},87,[153,2105,190],{"emptyLinePlaceholder":189},[153,2107,2109,2111,2114,2116,2119],{"class":155,"line":2108},88,[153,2110,497],{"class":231},[153,2112,2113],{"class":235}," ta",[153,2115,305],{"class":262},[153,2117,2118],{"class":235},"connect_cube",[153,2120,263],{"class":262},[153,2122,2124,2127,2129,2132],{"class":155,"line":2123},89,[153,2125,2126],{"class":235},"        ta",[153,2128,305],{"class":262},[153,2130,2131],{"class":235},"open_shotokuzei",[153,2133,873],{"class":262},[153,2135,2137],{"class":155,"line":2136},90,[153,2138,190],{"emptyLinePlaceholder":189},[153,2140,2142,2144,2146,2148,2151],{"class":155,"line":2141},91,[153,2143,344],{"class":231},[153,2145,2113],{"class":235},[153,2147,305],{"class":262},[153,2149,2150],{"class":235},"connect_shotokuzei",[153,2152,263],{"class":262},[153,2154,2156],{"class":155,"line":2155},92,[153,2157,2158],{"class":159},"            # メニュー操作の例\n",[153,2160,2162,2165,2167,2170,2173,2175,2178,2180,2182,2184,2187,2189],{"class":155,"line":2161},93,[153,2163,2164],{"class":235},"            ta",[153,2166,305],{"class":262},[153,2168,2169],{"class":235},"click_menu",[153,2171,2172],{"class":262},"([",[153,2174,353],{"class":268},[153,2176,2177],{"class":170},"ファイル(F)",[153,2179,353],{"class":268},[153,2181,459],{"class":262},[153,2183,347],{"class":268},[153,2185,2186],{"class":170},"開く",[153,2188,353],{"class":268},[153,2190,2191],{"class":262},"])\n",[14,2193,2195],{"id":2194},"ui要素調査ツール","UI要素調査ツール",[18,2197,2198],{},"スクリプトで要素が見つからない場合は、GUIツールで調査する。",[18,2200,2201],{},[77,2202,2203],{},"Accessibility Insights for Windows（推奨）:",[123,2205,2206,2209],{},[126,2207,2208],{},"Microsoft公式ツール",[126,2210,2211],{},[2212,2213,2214],"a",{"href":2214,"rel":2215},"https://accessibilityinsights.io/docs/windows/overview/",[2216],"nofollow",[18,2218,2219],{},[77,2220,2221],{},"Inspect.exe（Windows SDK付属）:",[144,2223,2228],{"className":2224,"code":2226,"language":2227},[2225],"language-text","C:\\Program Files (x86)\\Windows Kits\\10\\bin\\\u003Cversion>\\x64\\inspect.exe\n","text",[42,2229,2226],{"__ignoreMap":149},[14,2231,2232],{"id":2232},"結果",[18,2234,2235],{},"この仮説を検証した結果を以下にまとめた。",[18,2237,2238,2239],{},"→ ",[2212,2240,2242],{"href":2241},"/uiautomation-shotokuzei-tatsujin","所得税の達人をUI Automation APIで自動化する",[18,2244,2245],{},"達人CubeのUIはカスタム描画でUI Automationでは検出できなかったが、所得税の達人はショートカットから直接起動することで自動化に成功した。",[14,2247,2248],{"id":2248},"次のステップ",[2250,2251,2252,2259,2264,2267,2272],"ol",{},[126,2253,2254,2258],{},[2255,2256,2257],"del",{},"調査スクリプトを実行してUI要素の構造を確認"," → 完了",[126,2260,2261,2258],{},[2255,2262,2263],{},"取得できる要素名・AutomationIdを記録",[126,2265,2266],{},"よく使う操作をリストアップ",[126,2268,2269,2258],{},[2255,2270,2271],{},"操作スクリプトを実際の要素名に合わせて修正",[126,2273,2274],{},"ショートカット化（AutoHotkeyと連携など）",[14,2276,2277],{"id":2277},"想定される課題",[123,2279,2280,2286,2299],{},[126,2281,2282,2285],{},[77,2283,2284],{},"要素が取得できない",": アプリがUI Automationに対応していない可能性がある。その場合はpyautoguiで座標ベース操作にフォールバックする",[126,2287,2288,2291,2292,2295,2296,2298],{},[77,2289,2290],{},"動的な要素",": ダイアログの出現タイミングで",[42,2293,2294],{},"time.sleep","や",[42,2297,1192],{},"での待機が必要になる",[126,2300,2301,2304],{},[77,2302,2303],{},"権限の問題",": 管理者権限で実行が必要な場合がある",[14,2306,2307],{"id":2307},"参考リンク",[123,2309,2310,2317,2324],{},[126,2311,2312],{},[2212,2313,2316],{"href":2314,"rel":2315},"https://pypi.org/project/uiautomation/",[2216],"uiautomation PyPI",[126,2318,2319],{},[2212,2320,2323],{"href":2321,"rel":2322},"https://docs.microsoft.com/en-us/windows/win32/winauto/entry-uiauto-win32",[2216],"Windows UI Automation Overview",[126,2325,2326],{},[2212,2327,2330],{"href":2328,"rel":2329},"https://accessibilityinsights.io/",[2216],"Accessibility Insights",[2332,2333,2334],"style",{},"html pre.shiki code .sxvE3, html code.shiki .sxvE3{--shiki-default:#A0ADA0;--shiki-dark:#A0ADA0}html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHkkW, html code.shiki .sHkkW{--shiki-default:#1E754F;--shiki-dark:#1E754F}html pre.shiki code .sG7-3, html code.shiki .sG7-3{--shiki-default:#393A34;--shiki-dark:#393A34}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html pre.shiki code .sM54T, html code.shiki .sM54T{--shiki-default:#2F798A;--shiki-dark:#2F798A}html pre.shiki code .s4oTP, html code.shiki .s4oTP{--shiki-default:#B07D48;--shiki-dark:#B07D48}html pre.shiki code .sSkh3, html code.shiki .sSkh3{--shiki-default:#2E8F82;--shiki-dark:#2E8F82}",{"title":149,"searchDepth":163,"depth":163,"links":2336},[2337,2338,2339,2340,2345,2346,2347,2348,2349],{"id":16,"depth":163,"text":16},{"id":36,"depth":163,"text":37},{"id":48,"depth":163,"text":48},{"id":137,"depth":163,"text":137,"children":2341},[2342,2343,2344],{"id":141,"depth":177,"text":142},{"id":210,"depth":177,"text":211},{"id":1012,"depth":177,"text":1013},{"id":2194,"depth":163,"text":2195},{"id":2232,"depth":163,"text":2232},{"id":2248,"depth":163,"text":2248},{"id":2277,"depth":163,"text":2277},{"id":2307,"depth":163,"text":2307},"dev",null,"税務ソフト「達人Cube」と「所得税の達人」をUI Automation APIで自動化する仮説と調査用スクリプト","md",{},"/tatsujin-cube-automation",false,"2026-01-08T00:00:00.000Z",{"title":5,"description":2352},"2026-01/2026-01-08/tatsujin-cube-automation",[2361,2362,2363,167,2364,1171],"Windows","UI Automation","Python","自動化","done","KiMjLyu37g-1NPOwAp-XPOZLqZU5dUNQc0Z2kcVlZvg",[],[2369,2370,2374,2378,2382],{"title":2242,"path":2241,"publishedAt":2357},{"title":2371,"path":2372,"publishedAt":2373},"1週間止まっていた統計チェーンを取り戻す。make-diary が macOS で Step 9〜12 をスキップしていた","/make-diary-stats-chain-gap","2026-08-09T00:00:00.000Z",{"title":2375,"path":2376,"publishedAt":2377},"Kindle for PC デスクトップ版から全ページキャプチャ＋OCR取り込みパイプラインを組んだ日","/kindle-pc-capture-app","2026-06-23T00:00:00.000Z",{"title":2379,"path":2380,"publishedAt":2381},"Claude Code ステータスラインにレートリミット表示を追加した","/claude-code-statusline-ratelimit-2026-03-03","2026-03-03T00:00:00.000Z",{"title":2383,"path":2384,"publishedAt":2385},"確定申告資料92件の一括リネームとGoogleスプレッドシート連携 - Claude Codeによる自動化","/tax-2025-file-rename-spreadsheet-2026-02-12","2026-02-12T00:00:00.000Z","https://log.eurekapu.com/og/blog/tatsujin-cube-automation.png?v=2026-01-08T00%3A00%3A00.000Z&title=%E9%81%94%E4%BA%BACube%E8%87%AA%E5%8B%95%E5%8C%96%E3%81%AE%E4%BB%AE%E8%AA%AC%20-%20Windows%20UI%20Automation%20API%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81&author=Kei%20Komatsu&sig=d09a3662b8ce0081",1786424287999]