Home of site/JavaScript Macro for Calc

Macroの杜(JavaScript編)

< 戻る 【 Calc 】

CCFEt-)[Calc]縦書き
【Movie】実行結果

uno XDispatchHelperコマンドの 
	TextdirectionTopToBottom
でセル内文字を縦書きに設定

セルの設定を横書きから縦書きに変更するマクロ


//DispatchHelper TextdirectionTopToBottom
importClass(Packages.javax.swing.JOptionPane);
importClass(Packages.java.lang.System);

importClass(Packages.com.sun.star.beans.PropertyValue);
importClass(Packages.com.sun.star.frame.XDispatchHelper);
importClass(Packages.com.sun.star.frame.XDispatchProvider);
importClass(Packages.com.sun.star.uno.UnoRuntime);

importClass(Packages.com.sun.star.frame.XModel);
xSheetComponent = XSCRIPTCONTEXT.getDocument();

importClass(Packages.java.lang.Thread);

// utility method to ease creation of PropertyValue objects
function createProperty(n, v){
	prop = new PropertyValue();
	prop.Name =n;
	prop.Value=v;	
	return prop
}

try{
	// get important objects from the XSCRIPTCONTEXT
	xDispatchProvider = UnoRuntime.queryInterface(XDispatchProvider, XSCRIPTCONTEXT.getDesktop());
	ctx = XSCRIPTCONTEXT.getComponentContext();

	// create an UNO service object
	smgr = ctx.getServiceManager();
	sdh = smgr.createInstanceWithContext("com.sun.star.frame.DispatchHelper", ctx);
	xDispatchHelper = UnoRuntime.queryInterface(XDispatchHelper, sdh);

	// get XDispatchProvider 
	oModel = UnoRuntime.queryInterface(XModel, xSheetComponent);
	oController = oModel.getCurrentController();
	oFrame = oController.getFrame()
	oDispatchProvider = UnoRuntime.queryInterface(XDispatchProvider, oFrame);

	// dispatch 
	args = new Array;
	args[0]= createProperty('ToPoint', "A1");
	xDispatchHelper.executeDispatch(oDispatchProvider, ".uno:GoToCell", "", 0, args);
	
	// Enter String
	oStr = "こんにちは。\n LO Ver4.2\n 3月27日\n ( 27は全角 )"
	args[0]= createProperty('StringName', oStr);
	xDispatchHelper.executeDispatch(oDispatchProvider, ".uno:EnterString", "", 0, args);

	Thread.sleep(2000); // wait 2sec

	// TextdirectionTopToBottom
	args = []
	xDispatchHelper.executeDispatch(oDispatchProvider, ".uno:TextdirectionTopToBottom", "", 0, args);
	
	JOptionPane.showMessageDialog(null, "Success\n(LO7.6.2.1)");
}catch(e){
//Error Handling
errorname = e.name;
errormsg = e.message;
oDisp= errorname + "\n" + errormsg;
JOptionPane.showMessageDialog(null, eDisp);
}finally{
	JOptionPane.showMessageDialog(null, oDisp);
	System.gc()
}
inserted by FC2 system