余計なインポートたくさんありますがxlwingsがあればいけると思います。
概要:同階層にあるエクセル開いてC列にインサートして右にずらす
insert.py
import sys
import os
import glob
import re
import os.path
import string
import shutil
import struct
import xlwings as xw
from xlwings import constants
from xlwings import Book
from xlwings import Sheet
from xlwings import Range
def main():
path=os.path.dirname(os.path.abspath(__file__))
wb = xw.Book(path + "\\test.xlsx")
#C列指定のインサートじゃい!
wb.sheets(1).range('c:c').api.Insert()
#オプション付き
#wb.sheets(1).range('c:c').api.Insert(constants.Direction.xlToRight)
print("Finish!!!!")
#################################################
if __name__ == '__main__':
main()
一番重要な所はここでVBAとopenpyxlにはRangeクラスにInsertがあるのですがxlwingsには無いです。
wb.sheets(1).range('c:c').api.Insert()
なので「api」を使用してVBAの関数達を呼ばないといけません。罠かよ。
apiでリファレンスにはネイティブオブジェクトを返す。とだけしかないてないのでネイティブオブジェクトなんだよってスルーしてたのですが超重要だった。
apiはインテリセンスが自分の場合は出てこなくてVBAの関数リスト見ながら叩きました。
あとはインサート時に右にずらすとかそういうオプションはconstants.Direction.xlToRightだと思う。
おすすめのデバッグ方法はエクセル開きっぱなして実行していった方が良いです。
最終的にはsave closeよばないとですが開発中で見ながらできるので分かりやすい。
実行に失敗するとエクセルのプロセスが貯まってタスクマネージャー開いてわざわざ消さないとなので
面倒くさい。