newspaint

Documenting Problems That Were Difficult To Find The Answer To

Monthly Archives: January 2018

Visual Basic Macro to Change Selected Text to Courier New 9pt

Before any macros can be created in Microsoft Office 2010 and later (with the utterly ridiculous, dysfunctional, and pointless “ribbon” interface – seriously, Microsoft couldn’t get anything more wrong than removing menus from applications the world had come to depend upon) a “developer” toolbar has to be enabled.

  • choose the File toolbar from the utterly ridiculous and dysfunctional ribbon
  • on the left hand side choose “Options” – this will bring up a dialog box of options
  • choose the awfully and ignorantly spelt Americanised option “Customize Ribbon”
  • on the right hand ride where it says, in ridiculous American spelling, “Customize the Ribbon”, check the “Developer” Main Tab, then click OK on the dialog box

Now macros can be created by choosing the “Developer” toolbar from the utterly ridiculous and dysfunctional ribbon, and the “Macros” button can be clicked from there.

A macro name can be given, such as “selection_to_fixed_width“, with the following code (thanks to this post for guidance):

Sub selection_to_fixed_width()
  Dim oInspector As Inspector
  Dim oSelection
  Dim iRet As Integer
   
  Set oInspector = Application.ActiveInspector
   
  If oInspector.EditorType = olEditorWord Then
    Dim oApplication
       
    Set oApplication = oInspector.WordEditor.Application
    Set oSelection = oApplication.Selection
  End If

  If oSelection Is Nothing Then
    iRet = MsgBox("Script does not know how to find a selection",vbOKOnly,"Error")
    Exit Sub
  End If
  
  Dim nLength As Integer
  nLength = oSelection.End - oSelection.Start
  
  If nLength < 1 Then
    iRet = MsgBox("No text selected", vbOKOnly, "Error")
    Exit Sub
  End If

  With oSelection
    .Font.Name = "Courier New"
    .Font.Size = 9
  End With
End Sub

For Microsoft Word the following Macro can be used:

Sub selection_to_fixed_width()
  Dim oInspector
  Dim oSelection As Selection
  Dim iRet As Integer

  ' see https://docs.microsoft.com/en-us/office/vba/api/word.window
  ' see https://docs.microsoft.com/en-us/office/vba/api/word.window.selection
  ' see https://docs.microsoft.com/en-us/office/vba/api/word.selection

  Set oSelection = Application.ActiveDocument.ActiveWindow.Selection
  If oSelection Is Nothing Then
    iRet = MsgBox("Script does not know how to find a selection",vbOKOnly,"Error")
    Exit Sub
  End If

  Dim nLength As Integer
  nLength = oSelection.End - oSelection.Start

  If nLength < 1 Then
    iRet = MsgBox("No text selected", vbOKOnly, "Error")
    Exit Sub
  End If

  With oSelection
    .Font.Name = "Courier New"
    .Font.Size = 9
  End With
End Sub

You can now add a small button to your "quick access toolbar" which is the thin strip at the very top of every window (above the window's title). Where you see a small drop down arrow with a horizontal line above it – click this upside-down looking eject icon. From the menu choose "More Commands…" – this opens a dialog box. In the "Choose commands from:" dropdown select Macros – then drag your macro from the left-hand list to the right-hand list titled "Customize Quick Access Toolbar". Click OK and you now have an icon you can press to run the macro.

If this is Microsoft Outlook you'll only want to do this on a "new message" window (as you're only wanting to change text you're writing/creating).

At some point you'll restart your Microsoft Office application and find your macro no longer does anything. This is because Microsoft Office products, by default, disable macros from running. To enable them visit your Developer ribbon toolbar, click on "Macro Security", and choose "Notifications for all macros" from the dialog box. Then click OK and restart your Microsoft Office application.

The next time you try and run your macro you should get a warning that macros are disabled and you should be asked whether you want to enable macros.

ZTE Axon 7 LineageOS 14.1 Terminal Permission Denied

You’ve rooted your A2017G ZTE Axon 7 and put LineageOS 14.1 on. You’ve also installed, through TWRP, the addonsu-14.1-arm64-signed.zip package from LineageOS 14.1 extras (because the device is of arm64 architecture).

So when you install Terminal Emulator (jackpal.androidterm) from Google Play and start it up you’re puzzled when you get the message “Permission denied” when you try and do anything:

axon7:/ $ ls
ls: .: Permission denied
1|axon7:/ $

The solution is to run /system/bin/su from the command line – then allow Terminal Emulator su (super user) privileges when a dialog pops up as a result.

axon7:/ $ /system/bin/su
axon7:/ #

From now on, when you start a Terminal Emulator session, you need to just type su at the beginning of each session.

axon7:/ $ su
axon7:/ #