かなり苦労したのでメモ*1。このPythonコードの実行速度は下のVBAコードより圧倒的に速い。 #-*- coding: shift_jis -*- import openpyxl #元データのシート wb = openpyxl.load_workbook('testIn.xlsx',data_only=True) ws = wb['Sheet1'] #結合したセルの Range データを文字情報化して、バッファする listMerged=[] for rng in ws.merged_cells: listMerged.append(str(rng)) #セルの結合を解除し、左上の値を代入する for strRng in listMerged: leftTop = (strRng.split(':'))[0] ws.unmerge_cells(strRng) for row in ws