HUOM! Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla

 Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.

Microsoft 365

Kohteesta Wikikko - kansan taitopankki
Siirry navigaatioon Siirry hakuun

Sisällysluettelo

Johdanto[muokkaa]

Microsoft 365-kehitys (Roadmap): https://www.microsoft.com/fi-fi/microsoft-365/roadmap?rtc=1&filters=Microsoft%20Teams

Vinkkejä[muokkaa]

Officen käyttöliitymän kieli[muokkaa]

  • Officen valikot seuraavat sitä kielivalintaa, jota käytät OSX-käyttöjärjestelmäkielenä yleisesti. Jos haluat muuttaa jonkin Office-ohjelman kielen toiseksi kuin käyttöliittymäkielen, esimerkiksi englanniksi. Seuraava ohjelma poistaa ensisijaisena järjestelmäasetuksissa olevan kielen kielipaketin määrätystä office-ohjelmasta ja ottaa seuraavan kielipaketin listalla käyttöön. Asetuksen voi palauttaa taas takaisin, kun alkuperäistä kielipakettia ei tuhoa vaan vain nimeää kansion nimen toiseksi, jolloin Office ei tunnista sitä. Toiminto pitää tehdä jokaiselle Office-ohjelmalle erikseen. (Testattu Word for Mac v. 15.17 18.12.2015)
  1. Järjestelmäasetukset > Kieli ja alue > Ensisijaiset kielet 1. Suomi 2. English
  2. Lopeta Office ohjelmat.
  3. Finder > Ohjelmat > Microsoft Word.app päällä klikkaa hiiren oikeaa ja valitse Näytä pakkauksen sisältö > Contents > Resources > etsi hakemisto fi.lproj > nimeä tiedosto esimerkiksi xfi.lproj
  4. Käynnistä kyseinen ohjelma, jonka kohdalla teit muutoksen ja se on nyt englanniksi.

Excel[muokkaa]

HUOM! Jos kaavat eivät toimi: kokeile korvata kaavassa pilkku (,) puolipisteellä (;) tai päinvastoin

F2[muokkaa]

F2-näppäin saa Windowsissa solun muokattavaksi, vastaava näppäin MacOS on Ctrl-u

Funktiot[muokkaa]

Suomenkielisessä Excelissä on suomenkieliset funktioiden nimet. Googlen ohjeet viittaavat esim. englannin kielisiin funktionimiin. Käännöstalulukoita:

http://excelohjeet.com/excel-funktiot-suomeksi-ja-englanniksi
https://www.excel-function-translation.com/index.php?page=english-finnish.html
http://www.tekstiviestit.fi/sihteeriopas/sihteeriopas-materiaali-funktiot.html

Haku[muokkaa]

  • Ohje puuttuu seuraavalta, tarkenna tähän.
    • =JOS(ONLUKU(KÄY.LÄPI("Haettava sana";A1:A100));B1:B100;"")

Google-haku, Chrome-selain[muokkaa]

  • Lisää painike ja painikkeelle seuraava VBA-koodi. Huomaa, chromePolun sijaintai on eri 32 ja 64-bittisissä Windowseissa. Toimii Windows 10.
Sub GoogleHaku()
    Dim chromePolku As String
    Dim haku_ehto As String
    haku_ehto = Worksheets("Välilehdennimi").Range("A10") 'Missä solussa hakusanat
    'haku_ehto = "Haettava teksti" jos teksti määritetään suoraan tässä koodissa
    haku_ehto = Replace(haku_ehto, " ", "+")
    chromePolku = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" '64-bittinen Windows
    Shell (chromePolku & " -url http://google.ca/#q=" & haku_ehto)
End Sub

Haku toiselta välilehdeltä ja löydetyn viereinen solu[muokkaa]

  • Käytä hakusanana koko solun riviä, esim. >results>name eikä pelkästään name
Sub HakuSivulta()
    Dim VL1 As Worksheet: Set VL1 = Worksheets("Välilehdennimi jossa haettava sana ja johon tulos")
    Dim VL2 As Worksheet: Set VL2 = Worksheets("Välilehdennimi josta haetaan")
    Dim FoundCell As Range: Set FoundCell = VL2.Range("A:A").Find(VL1.Range("A1").Value, LookIn:=xlValues, LookAt:=xlWhole) 
    'Yllä haetaan toisen välilehden sarakkeesta A sanaa joka on annettu toisella välilehdellä solussa A1
    If FoundCell Is Nothing Then
        Set FoundCell = Nothing
        Set VL1 = Nothing
        Set VL2 = Nothing
        Exit Sub
    Else
        VL1.Range("A2") = FoundCell.Offset(0, 1) 'Tulostetaan soluun A2 löydetystä tiedosta oikealla olevasta solusta arvo
    End If
    Set FoundCell = Nothing
    Set VL1 = Nothing
    Set VL2 = Nothing
End Sub
  • Lähde, source: ?

Jos[muokkaa]

  • Kaava
=JOS(A1=10 ; mitä tehdään kun totta ; mitä tehdään kun ei totta)
=JOS(A1=10;"Luku on 10";)
=JOS(A1=10;"Luku on 10";"Luku ei ole 10")
=JOS(A1=10;"Luku on 10";JOS(A1=20;"Luku on 20";))
=JOS(JA(A1=TOSI;B1=TOSI);"A1 ja B1 -solut ovat kummatkin tosia";"A1 tai B1 tai ei kumatkaan ole tosia")
=JOS(TAI(A1=TOSI;B1=TOSI);"A1 tai B1 -solu on tosi";)
  • VBA
    • Esimerkkinä testataan onko välilehdellä 1 oleva vuosiluku alle kolme vuotta nykyisestä vuodesta ja jos on, haetaan välilehdeltä 3 arvo solusta B1 välilehdelle 2. Ja jos yli 3 vuotta, haetaan välilehdeltä arvo solusta B2.
    If (Year(Date) - Worksheets("Välilehdennimi1").Range("A1")) > 3 Then
        Worksheets("Välilehdennimi2").Range("A2") = Worksheets("Välilehdennimi3").Range("B1")
        Else: Worksheets("Välilehdennimi2").Range("A2") = Worksheets("Välilehdennimi3").Range("B2")
    End If
    • Select, ponnahdusikkuna Kyllä, Ei, Peruuta
    Select Case MsgBox("Lisätään valmis teksi, mutta tyhjennetäänkö samalla solu A1?", vbYesNoCancel)
    Case vbCancel
        Cancel = True 'peruutetaan toimenpide
    Case vbNo
        Worksheets("Välilehdennimi1").Range("A2").Value = Worksheets("Välilehdennimi2").Range("B10")
    Case vbYes
        Worksheets("Välilehdennimi1").Range("A1").ClearContents
        Worksheets("Välilehdennimi1").Range("A2").Value = Worksheets("Välilehdennimi2").Range("B10")
    End Select

JSON -tuonti Exceliin[muokkaa]

JSON-tiedostojen tuonti Exceliin ei ole ihan yksinkertainen.

JSON-esimerkki 1, YTJ[muokkaa]

Seuraavassa eräs ohje, esimerkkinä yrityksen tietojen haku YTJ:n avoimesta datasta. Windows 10. Käytetty 8/2020.

  • Lähde, source: https://excelrocks.com/how-to-import-json-to-excel-using-excel-vba
  • Siirrä xlsm-taulukkotiedosto OneDrivestä tietokoneen C-hakemiston juureen (toimii ainakin siellä).
  • Lisää taulukkoon välilehti, jossa käsitellään haettava hakusana ja johon tulos, tässä Main, välilehden nimen voi muuttaa koodin alussa.
  • Lisää taulukkoon välilehti, johon JSON-tieto tuodaan, tässä YTJ-tulokset, välilehden nimen voi muuttaa koodin alussa.
  • Lisää VBA-moduuli nimeltä modjson ja siihen seuraava koodi.
    • Moduulin nimen muuttaminen jälkeenpäin: VBA-editorissa paina Ctrl-R > Paina F4 > Valitse moduuli ylruudussa ja muuta nimi alaruutuun välilehdellä Alphabetic.
Option Explicit
'**********************************************************************
'* Code to exercise the clsJson class:                                *
'* Read data from a URL and store to a file,                          *
'* read the file and parse out JSON data                              *
'* Sanjay Gour                                                        *
'* https://excelrocks.com/how-to-import-json-to-excel-using-excel-vba *
'**********************************************************************
 
'Get data from a URL and store to "\YTJ-haku_tilapäinen_poistettava.txt" in the same
'directory as the excel spreadsheet.
Public Sub StoretHTTPToTextFile()
    Dim xmlHttp As Object
    Dim strReturn As String
    Dim strURL As String
    
    Dim strYtunnusCell As String
    Let strYtunnusCell = Worksheets("Main").Range("A1") 'Missä solussa annetaan y-tunnus muodossa 1234567-8

    Dim strLoadingCell As Object
    Set strLoadingCell = Worksheets("Main").Range("A2") 'Mihin soluun ilmestyy tilapäinen "Noudetaan..."
    
    Dim strResultSheet As Object
    Set strResultSheet = Worksheets("YTJ-tulokset") 'Hakutulosten välilehden nimi, lisää välilehti etukäteen
    'HUOM! Muuta koodiin välilehden nimi kohtiin YTJ-tulokset, mitkä eivät muutu yllä olevalla objektilla
             
    strURL = "http://avoindata.prh.fi/bis/v1/" & strYtunnusCell 'URL-osoite ilman hakusanaa
    
    strLoadingCell.Value = "Noudetaan tietoja YTJ-palvelusta..." 'osoitteesta" & strURL
     
    'Open URL and get JSON data
    Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
    xmlHttp.Open "GET", strURL
    xmlHttp.setRequestHeader "Content-Type", "text/xml"
    xmlHttp.send
  
    'Save the response to a string
    strReturn = xmlHttp.responseText
     
    'save JSON text to file
    ExportToTextFile ActiveWorkbook.Path & "\YTJ-haku_tilapäinen_poistettava.txt", strReturn
     
    Call LoadTheTextFileAndParse
     
    strLoadingCell = ""
    
    'Go to 'YTJ-tulokset' sheet and select the first cell
    strResultSheet.Activate
    strResultSheet.Range("A1").Select
End Sub
  
'Import a set of JSON data (from JSON_temp.txt located
'in the same directory as this worksheet)
'and move JSON data keys to column A and JSON
'values for the keys in Column B
'of the worksheet
Private Sub LoadTheTextFileAndParse()
    Dim intindex As Integer
    Dim strVar As String
    Dim strStatus As String
    Dim strErrStatus As String
    Dim intDebugLevel As Integer
    Dim clsJson As clsJson
    Dim strJSONTempFile As String
     
    '0 = no info
    '1 = debug.print status info
    intDebugLevel = 1
     
    'Set the temporary JSON temp file path in the current folder
    strJSONTempFile = ActiveWorkbook.Path & "\YTJ-haku_tilapäinen_poistettava.txt"
     
    'Get JSON text string from file
    strVar = ImportTextFile(strJSONTempFile)
 
    'Clear old contents in spreadsheet
    Sheets("YTJ-tulokset").Cells.ClearContents
    Sheets("YTJ-tulokset").Cells.ClearFormats
    Sheets("YTJ-tulokset").Columns("B:B").HorizontalAlignment = xlLeft
     
    'Set the class connection
    Set clsJson = New clsJson
     
    If intDebugLevel > 0 Then
        Debug.Print "Tila ennen noutamista: " & clsJson.err
    End If
     
    'The first step is to load the JSON information
    'The loaded information will then be available
    'through the clsJSON.Key and clsJSON.Value data pairs
    clsJson.LoadTheJSONString strVar
 
    If intDebugLevel > 0 Then
        Debug.Print "Tila noutamisen jälkeen: " & clsJson.err
        Debug.Print "Noudettu " & clsJson.NumElements & " elementtiä."
    End If
     
    strStatus = "Noudettu " & clsJson.NumElements & " elementtiä."
     
    'Convert status data to text
    Select Case clsJson.err
        Case -1
            strErrStatus = "JSON-jonoa ei voitu noutaa."
        Case -2
            strErrStatus = "JSON-jonoa ei voitu täydellisesti jäsentää."
        Case 1
            strErrStatus = "JSON-jono jäsennetty."
    End Select
     
    'Display status data
    strStatus = strStatus & Chr(10) & strErrStatus & Chr(10) & Chr(10) & _
                        "YTJ-tulokset on noudettu."
     
    MsgBox strStatus, vbInformation, "TIETOJEN HAKU"
     
    'Get all the elements of the parsed JSON text and put the data in cells (in Sheets("YTJ-tulokset"))
    For intindex = 1 To clsJson.NumElements
        Sheets("YTJ-tulokset").Cells(intindex, 1).Value = clsJson.Key(intindex)
        Sheets("YTJ-tulokset").Cells(intindex, 2).Value = clsJson.Value(intindex)
    Next
     
    'Lastly, delete the JSON_temp.txt file
    If Len(Dir$(strJSONTempFile)) > 0 Then Kill strJSONTempFile
End Sub
 
'Load a text file to a string
Private Function ImportTextFile(strFile As String) As String
    Open strFile For Input As #1
    ImportTextFile = Input$(LOF(1), 1)
    Close #1
End Function
  
'Save a text string to a file
Private Function ExportToTextFile(strFile As String, strText As String) As String
    Dim fso As Object
    Dim oFile As Object
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oFile = fso.CreateTextFile(strFile)
     
    oFile.WriteLine strText
     
    oFile.Close
    Set fso = Nothing
    Set oFile = Nothing
End Function
  • Lisää 'Main'-välilehdelle painike ja liitä siihen edellinen makro eli StoretHTTPToTextFile
  • Lisää VBA-Class moduuli nimeltä clsjson Lisäys tapahtuu Insert > Class Module ja nimeä tarvittaessa uudestaan kuten yllä ohjeistettu.
Option Explicit
 
Private strKey As Variant
Private strVal As Variant
Private intHMax As Integer
Private lngStatus As Long
 
Private Sub Class_Initialize()
    lngStatus = -1
End Sub
 
Public Property Get err() As Long
'Status:
'   1 = JSON string has been sucessfully parsed
'  -1 = JSON string has not been loaded, no results are available
'  -2 = JSON string cannot be fully parsed (JSON text not fully or incorrectly formed)
     
    err = lngStatus
End Property
 
Public Property Get NumElements() As Integer
    NumElements = intHMax
End Property
 
Public Property Get Key(Index As Integer) As Variant
    If Index > UBound(strKey) Or Index < LBound(strKey) Then
        Key = ""
    Else
        Key = strKey(Index)
    End If
End Property
 
Public Property Get Value(Index As Integer) As Variant
    If Index > UBound(strVal) Or Index < LBound(strVal) Then
        Value = ""
    Else
        Value = strVal(Index)
    End If
End Property
 
'This method Loads the JSON text into an array
Public Sub LoadTheJSONString(JSONText As String)
     
    'Maximum Value for Long type
    Const cLongMax = (2 ^ 31) - 1
     
    Dim lngIndex As Long
    Dim lngContLoc As Long
    Dim lngLoc As Long
    Dim lngDelimitOffset As Long
    Dim lngASize As Long
     
    Dim intNoOfChecks As Integer 'Number of different control characters in JSON
    Dim intCheck As Integer
    Dim intCtrlChr As Integer
    Dim intObJLvl As Integer
    Dim intAryElement As Integer
    Dim intLvl As Integer
     
    Dim strID As String
    Dim strChr As String
    Dim strKeyValue As String
    Dim strValue As String
    Dim strPChar As String
    Dim strFoundVal As String
    Dim strTempString As String
    Dim strAKey() As String
    Dim strAVal() As String
    Dim strALvlKey(100) As String
     
    Dim blArray As Boolean          'Flag to indicate that an array has been found
    Dim blStringArray As Boolean    'Flag to indicate that the element in the array is a string
    Dim BlArrayEnd As Boolean       'Flag to indicate that the end of an array is found
    Dim blValue As Boolean          'Flag to indicate that a value has been found
    Dim blKeyAndValue As Boolean    'Found a key and value pair
    Dim blDebug As Boolean
     
    'Set the flag to true if you want to see
    'debug information during the loading process
    blDebug = True
     
    On Error GoTo ErrHandler:
     
    lngASize = 10
    ReDim strAKey(lngASize)
    ReDim strAVal(lngASize)
     
    'intArrayElement = 1 'initialize value
    'initialize values
    blArray = False
    BlArrayEnd = False
    blStringArray = False
     
    'Generate a string of control characters
    'String is {[:,]}"
    strID = ""
    strID = strID & Chr(123) 'The '{' character
    strID = strID & Chr(91)  'The '[' character
    strID = strID & Chr(58)  'The ':' character
    strID = strID & Chr(44)  'The ',' character
    strID = strID & Chr(93)  'The ']' character
    strID = strID & Chr(125) 'The '}' character
    strID = strID & Chr(34)  'The '"' character
     
    intNoOfChecks = Len(strID)
    intObJLvl = 0
     
    'First element in the array will be strKey(1) and strVal(1)
    lngIndex = 1
     
    'As we process the JSON string it becomes shorter and
    'shorter, until its all been processed
    Do While Len(JSONText) > 0
        'Set to maximum value as default
        lngContLoc = cLongMax
         
        'Find Next control character:
        'Scan the text for the closest control character
        'to the beginning of the remaining JSON text
        For intCheck = 1 To intNoOfChecks
            strChr = Mid(strID, intCheck, 1)
            lngLoc = InStr(1, JSONText, strChr, vbBinaryCompare)
         
            If (lngLoc > 0) And (lngLoc < lngContLoc) Then
                lngContLoc = lngLoc
                intCtrlChr = intCheck
                strPChar = strChr
            End If
        Next intCheck
         
        'When the above For Next Loop ends we will have found
        'the closest control character
        'stored in intCtrlChr - an index (1 to 8) to the
        'found character in strChr
        'stored in lngContLoc - position of the next
        'control character
        'stored in strPChar - the closest next control character
         
        If blDebug = True Then
            Debug.Print "Parse Character: " & strPChar
        End If
         
        'A control character has been found, figure out what to do by the found character
        If lngContLoc < cLongMax Then
            'Capture the information before the control character
            strValue = Mid(JSONText, 1, lngContLoc - 1)
             
            'Capture everything after the control character (the remaining JSON string)
            JSONText = Mid(JSONText, lngContLoc + 1, Len(JSONText))
        Else
            'We found the end of the JSON string
            Exit Do
        End If
         
        'Found a number or boolean value or key (the comma)
        'Handles number types in array (process value as
        'string or number; not both)
        If (intCtrlChr = 4) Then
            If ((blValue = True) Or (blArray = True)) And (blStringArray = False) Then
                'Found a value, and we already have key
                strFoundVal = ConvertStringToValue(strValue)
                blKeyAndValue = True 'Set the "Key and value found" flag
            End If
            'Finding a comma resets the string found in the array
            blStringArray = False
        End If
         
        'Start of object (The "{" character)
        If intCtrlChr = 1 Then
            intObJLvl = intObJLvl + 1
            blArray = False 'An object, not an array
            blValue = False 'Need to find a key first
             
            If blDebug = True Then
                Debug.Print "Start of Object, Moved up to level" & intObJLvl
            End If
        End If
         
        'End of of object (The "}" character)
        If intCtrlChr = 6 Then
            'Numbers preceded by the "}" character
            If blValue = True Then
                'Get the found value and set a flag
                strFoundVal = ConvertStringToValue(strValue)
                blKeyAndValue = True 'Set the "Key and value found" flag
                'Add back a "}" character to the string so that the level can be decremented properly
                JSONText = "}" & JSONText
            Else
                'No value was found, the "}" character indicates the end of this level
                intObJLvl = intObJLvl - 1
                blValue = False 'Need to find a key first
            End If
             
            If blDebug = True Then
                Debug.Print "End of Object, Moved down to level" & intObJLvl
            End If
        End If
         
        'Start of array (The "[" character)
        If intCtrlChr = 2 Then
            blArray = True
            blValue = True 'Next thing should be a value
            intAryElement = 1
             
            If blDebug = True Then
                Debug.Print "Start of Array, Moved up to level" & intObJLvl
            End If
        End If
         
        'End of of array (The "]" character)
        If intCtrlChr = 5 Then
            'Parse last numeric or boolean value of an array
            If (blArray = True) And (blStringArray = False) Then
                'Get the found value and set a flag
                strFoundVal = ConvertStringToValue(strValue)
                blKeyAndValue = True 'Set the "Key and value found" flag
            End If
                 
            BlArrayEnd = True 'Mark that the end of the array is found
            blArray = False
            blValue = False 'Need to find a key first
             
            If blDebug = True Then
                Debug.Print "End of Array, Moved down to level" & intObJLvl
            End If
        End If
         
        'Object Value start is found (The ":" character)
        If intCtrlChr = 3 Then
            blValue = True
             
            'Start of an object value is not the end of an array
            BlArrayEnd = False
             
            If blDebug = True Then
                Debug.Print "ready to get value"
            End If
        End If
         
        'Start of a string (the quote " character)
        'Can be a key or value
        If intCtrlChr = 7 Then
            'The start of the key or value has been found
            'The next quote will end the key or value
            '(unless the quote has an escape character in front of it "\")
             
            lngDelimitOffset = 1
           
            Do
                'Look for the next quote character
                lngLoc = InStr(lngDelimitOffset, JSONText, Chr(34), vbBinaryCompare)
                 
                'If the string is zero length "" then exit the loop
                If lngLoc = 1 Then
                    Exit Do
                End If
             
                'Check to see if there is a delimter just before the quote
                'if there is then quote is part of the string and not the end of
                'the string.
                If Mid(JSONText, lngLoc - 1, 1) = Chr(92) Then
                    ' The quote character has an escape character in front of it
                    'so this quote doesn't count.  Remove the escape character.
                    JSONText = Mid(JSONText, 1, lngLoc - 2) & Mid(JSONText, lngLoc, Len(JSONText))
                     
                    'and move the start of the check past the delimted quote
                    lngDelimitOffset = lngLoc
                     
                    'If we have a messed up JSON string where there
                    'is no valid closing quotes the above "If" will
                    'cause an error (the "Mid" statement will attempt
                    'to check the string starting at a position of
                    '-1) and the code will jump to the error handling
                    'section. If this error didn't occur the
                    'Do..Loop would get stuck.
                Else
                    Exit Do
                End If
            Loop
             
            'We now have a string, find any other delimiters
            '(any delimited " characters have already been fixed)
            strTempString = FixTheJSONString(Mid(JSONText, 1, lngLoc - 1))
             
            If (blValue = True) Or (blArray = True) Then
                'The key has been previously found and this is
                'the value for the key
                strFoundVal = strTempString
                 
                'Set the "Key and value found" flag
                blKeyAndValue = True
                 
                If blArray = True Then
                    'The value is a string
                    blStringArray = True
                End If
            Else
                If lngLoc > 0 Then
                    'We've found a key
                    strALvlKey(intObJLvl) = strTempString
                    If blDebug = True Then
                        Debug.Print "Found Key:" & strALvlKey(intObJLvl) & _
                                    " for Level: " & intObJLvl
                    End If
                End If
            End If
            JSONText = Mid(JSONText, lngLoc + 1, Len(JSONText))
        End If
         
        'Found a key and value, move it to the array
        If blKeyAndValue = True Then
            If lngIndex > lngASize Then
                lngASize = lngASize + 100
                ReDim Preserve strAKey(lngASize)
                ReDim Preserve strAVal(lngASize)
            End If
         
            strAKey(lngIndex) = ""
            For intLvl = 1 To intObJLvl
                strAKey(lngIndex) = strAKey(lngIndex) & ">" & strALvlKey(intLvl)
            Next intLvl
             
            'Save last element of an array
            If (blArray = True) Or (BlArrayEnd = True) Then
                'add the array element to the key
                strAKey(lngIndex) = strAKey(lngIndex) & ">" & Trim(Str(intAryElement))
                 
                'increment the array element
                intAryElement = intAryElement + 1
                 
                'Reset end of array flag (Reset, when array end is found)
                BlArrayEnd = False
            End If
             
            strAVal(lngIndex) = strFoundVal
            If blDebug = True Then
                Debug.Print "Added Key:" & strAKey(lngIndex) & _
                " Value: " & strAVal(lngIndex) & " index: " & lngIndex
            End If
             
            lngIndex = lngIndex + 1 'Increment the array
            blKeyAndValue = False 'Reset the "found" flag
            blValue = False 'Reset the "Value Found" flag
        End If
    DoEvents
    Loop
     
    'Number of items found
    intHMax = lngIndex - 1
    strKey = strAKey
    strVal = strAVal
    lngStatus = 1 'JSON sucessfully parsed
     
    Exit Sub
 
ErrHandler:
    'Error handling
    lngStatus = -2 'JSON Parse error
    'Uncomment the next 3 lines to figure out the
    'cause of the issue:
     
    'Debug.Print VBA.err.Number
    'Debug.Print VBA.err.Description
    'Resume
     
End Sub
 
'This function converts a string that contains formatting
'information into a string that only contains a value.
'Values can be text, integer, or floating point values.
'null is pssed back as a zero length string: "".
Private Function ConvertStringToValue(strInStr As String) As String
    Dim intStrPos As Integer
    Dim strTemp As String
    Dim intChar As Integer
     
    'default value
    strTemp = ""
     
    'Make sure that the string does not have a zero length
    strInStr = " " & strInStr
     
    'Loop through each character in the string and remove anything
    'that is not alphanumeric.
    For intStrPos = 1 To Len(strInStr)
        intChar = Asc(Mid(strInStr, intStrPos, 1))
         
        If ((intChar >= Asc("a")) And (intChar <= Asc("z"))) Or _
           ((intChar >= Asc("A")) And (intChar <= Asc("Z"))) Or _
           ((intChar >= Asc("0")) And (intChar <= Asc("9"))) Or _
           (intChar = Asc(".")) Or (intChar = Asc("+")) Or _
                                        (intChar = Asc("-")) Then
            
           strTemp = strTemp & Chr(intChar)
        End If
    Next intStrPos
     
    'Values that are listed as 'null' are converted to a zero length string
    If InStr(1, "null", strTemp, vbTextCompare) > 0 Then
        strTemp = ""
    End If
     
    ConvertStringToValue = strTemp
End Function
 
'This function goes through a JSON string and corrects
'delimited characters
Private Function FixTheJSONString(strInput As String) As String
    Dim blParseComplete As Boolean
    Dim lngStartPos As Long
    Dim lngCurrentPos As Long
     
    blParseComplete = False
    lngStartPos = 1
     
    Do While blParseComplete = False
        'If we don't find any escape sequences then allow the loop to end
        blParseComplete = True
         
        'Escaped sequence: replace \\ with \
        'look for the the specific escape sequence
        lngCurrentPos = InStr(lngStartPos, strInput, "\\", vbTextCompare)
        If lngCurrentPos > 0 Then
            strInput = Mid(strInput, 1, lngCurrentPos - 1) & "\" & _
                        Mid(strInput, lngCurrentPos + 2, Len(strInput))
             
            'set the status to check for another escape
            blParseComplete = False
        End If
     
        'Escaped sequence: replace \/ with /
        'look for the the specific escape sequence
        lngCurrentPos = InStr(lngStartPos, strInput, "\/", vbTextCompare)
        If lngCurrentPos > 0 Then
            strInput = Mid(strInput, 1, lngCurrentPos - 1) & "/" & _
                        Mid(strInput, lngCurrentPos + 2, Len(strInput))
             
            'set the status to check for another escape
            blParseComplete = False
        End If
     
        'Escaped sequence: replace \b with a backspace
        'look for the the specific escape sequence
        lngCurrentPos = InStr(lngStartPos, strInput, "\b", vbTextCompare)
        If lngCurrentPos > 0 Then
            strInput = Mid(strInput, 1, lngCurrentPos - 1) & Chr(8) & _
                        Mid(strInput, lngCurrentPos + 2, Len(strInput))
                         
            'set the status to check for another escape
            blParseComplete = False
        End If
         
        'Escaped sequence: replace \f with a formfeed
        'look for the the specific escape sequence
        lngCurrentPos = InStr(lngStartPos, strInput, "\f", vbTextCompare)
        If lngCurrentPos > 0 Then
            strInput = Mid(strInput, 1, lngCurrentPos - 1) & Chr(12) & _
                         Mid(strInput, lngCurrentPos + 2, Len(strInput))
                          
            'set the status to check for another escape
            blParseComplete = False
        End If
     
        'Escaped sequence: replace \n with a newline
        'look for the the specific escape sequence
        lngCurrentPos = InStr(lngStartPos, strInput, "\n", vbTextCompare)
        If lngCurrentPos > 0 Then
            strInput = Mid(strInput, 1, lngCurrentPos - 1) & Chr(10) & _
                        Mid(strInput, lngCurrentPos + 2, Len(strInput))
                         
            'set the status to check for another escape
            blParseComplete = False
        End If
     
        'Escaped sequence: replace \r with a carriage return
        'look for the the specific escape sequence
        lngCurrentPos = InStr(lngStartPos, strInput, "\r", vbTextCompare)
        If lngCurrentPos > 0 Then
            strInput = Mid(strInput, 1, lngCurrentPos - 1) & Chr(13) & _
                        Mid(strInput, lngCurrentPos + 2, Len(strInput))
                         
            'set the status to check for another escape
            blParseComplete = False
        End If
     
        'Escaped sequence: replace \t with a horizontal tab
        'look for the the specific escape sequence
        lngCurrentPos = InStr(lngStartPos, strInput, "\t", vbTextCompare)
        If lngCurrentPos > 0 Then
            strInput = Mid(strInput, 1, lngCurrentPos - 1) & Chr(9) & _
                        Mid(strInput, lngCurrentPos + 2, Len(strInput))
            blParseComplete = False 'set the status to check for another escape
        End If
     
        'Escaped sequence: replace \uXXXX with a unicode character
        'look for the the specific escape sequence
        lngCurrentPos = InStr(lngStartPos, strInput, "\u", vbTextCompare)
        If lngCurrentPos > 0 Then
            strInput = Mid(strInput, 1, lngCurrentPos - 1) & _
                        ChrW$(CLng("&h" & Mid(strInput, lngCurrentPos + 2, 4))) & _
                        Mid(strInput, lngCurrentPos + 6, Len(strInput))
             
            'set the status to check for another escape
            blParseComplete = False
        End If
    Loop
     
    FixTheJSONString = strInput
End Function
  • Syötä Main-välilehden soluun A1 sellainen y-tunnus, joka löytyy YTJ-sivustolta > paina lisäämääsi painiketta > Ilmestyy soluun A2 teksti "Noudetaan..." > Ilmestyy ponnahdusikkuna > Noudettu JSON-tieto löytyy toiselta välilehdeltä. Nyt tiedosta voi hakea esimerkiksi tällä sivulla olevan ohjeen mukaan, ks. Haku toiselta välilehdeltä ja löydetyn viereinen solu.

Kaksoiskappaleiden poistaminen[muokkaa]

  • Poistossa jää jäljelle rivi, joka on rivinumeroltaan pienempi kaksoiskappaleista.
  1. Jos on yhdistetty esim. taulukko A ja taulukko B, joissa on esimerkiksi sarakkeessa A1 samoja yritysten nimiä. Kuitenkin taulukon A rivit halutaan jättää jos siitä löytyy kaksoiskappale taulukosta B.
    1. Järjestä tällöin taulukko A ylimmäiseksi (lähempänä 1-riviä) ja taulukko B sen jälkeen.
  2. Valitse värjäämällä kaikki / käsiteltävät rivit
  3. Valitse Data > Remove Duplicates
    1. Poista merkintä kohdasta Select All
    2. Valitse sarake, jossa kaksoiskappaleita verrataan > Ok

Kaksoiskappaleiden korostus[muokkaa]

  1. Valitse värjäämällä sarakkeet/rivit/solut joissa korostus tehdään
  2. Home > Conditional Formatting > Highlight Cell Rules > Duplicate Values...
    1. Style: Classic, Format only unique or duplicate values, duplicate values in the selected range, Format with Light Red Fill with Dark Red Text > Ok

Kehitystyökalut[muokkaa]

Jos välilehdistä ei löydy kohtaa 'Kehitystyökalut': Klikkaa ikonitoimintorivillä hiiren oikeaa > Mukauta valintanauhaa... > Valitse Kehitystyökalut

Kellonaika desimaaleiksi[muokkaa]

  1. =TUNNIT(A1)+MINUUTIT(A1)/60
  2. Muunna solun muodoksi "Yleinen/General" tai "Luku" ja vähennä desimaalit esimerkiksi kahteen.

Kieli[muokkaa]

  • MacOS-käyttöjärjestelmässä Excel noudataa ulkoasussa tietokoneen kieliasetusta. Tiedostokohtaisesti kieli voidaan muuttaa Tools > Language...
  • MacOS antaa mahdollisuuden myös muuttaa ohjelmakohtaisesti kieliasetusta. Esim. jos käyttää tietokonetta normaalisti esim. suomeksi ja haluaa Excelin olevan englanninkielinen ulkoasultaan: System Preferences > Language & Region > Apps > + > Application: Microsoft Excel.app > Language: English > uudelleenkäynnistetään Excel.

Kopiointi nopeasti[muokkaa]

Tuplaklikkaa solun kulmassa kopiointi-ristiä ja kyseinen arvo kopioituu siitä solusta alaspäin. <-- tarkenna

Korvaavia taulukkolaskentaohjelmia[muokkaa]

  • Open Office / Calc taulukkolaskenta suomenkielisenä.
  • Numbers (macOS, iOS)

Muuttuja[muokkaa]

  • Huomaa muuttujan käyttötarkoitus ja sen mukaan määrittele object tai string ja käytä set tai let.
  • Välilehden nimi ja solu muuttujassa, objekti, set
    Dim strCell As Object
    Set strCell = Worksheets("Välilehdennimi").Range("A10")
    strCell.Value = "Teksti" 'Asetetaan solulle arvo
    strLoadingCell = "" 'Tyhjennetään solun arvo
  • Välilehden nimi ja solu muuttujassa, string, let
    Dim strCell As String
    Let strCell = Worksheets("Välilehdennimi").Range("A10")
    strURL = "http://osoite/" & strCell
  • Solu muuttujassa, string
    Dim strCell As String
    Let strCell = "A1"
    strURL = "https://osoite/" & Sheets("Välilehdennimi").Range(strCell)
  • Välilehden nimi ja solu muuttujassa, ???, ???
    • Puuttuu ohje miten määritellään kun halutaisiin korvata seuraava muuttujalla: Sheets("Välilehdennimi").Cells.ClearContents

Painike, makro, VBA[muokkaa]

Usein painikkeita käytetään yhdessä makron kanssa, joka ohjelmoidaan Visual Basicilla (VBA). Painettaessa, tapahtuu jokin toiminto.

  • Painikkeita lisätään a) lomakeohjausobjektina tai b) ActiveX-komponenttina.
    • Lomakeohjausobjekti: Tämän voi valita useissa tapauksissa. <-- tarkenna
    • AciveX-komponentti: ???
  • Peruskuvio on, että lisätään painike ja liitetään siihen makro.
  1. Kehitystyökalut > Lisää > Lomakeohjausobjetit > Painike
  2. Hiiren nuoli muuttuu ristikoksi, vedä painike haluamaasi kohtaan. Myöhemmin makroa voi siirrellä vapaasti ja muuttaa tekstiä.
  3. Avautuu makro-ikkuna > Valitse olemassa oleva jo aiemmin tehty makro ja paina 'OK' TAI kirjoita uusi nimi makrolle ja paina 'Uusi', jolloin avautuu Microsoft Visual Basic for Applications-ikkuna.
    1. Makrot kannattaa heti alusta alkaen nimetä kuvaavasti ja johdonmukaisesti.
  4. Makroja voi kirjoittaa useita samaan moduuliin, vaikka aina aukeaisi uusi moduui. <-- tarkenna
    1. Makro alkaa: Sub Makronnimi()
    2. Makro päättyy: End Sub
    3. Edellisten väliin tulee makron suorittama koodi, esim.
      1. Range("A1") = Worksheets("Välilehdennimi").Range("B1") hakee välilehdeltä 'Välilehdennimi' solusta B1 arvon/tekstin ja lisää sen soluun A1.
        1. Solu voidaan siis osoittaa samalla välilehdellä Range("A1") ja toisella välilehdellä Worksheets("Välilehdennimi").Range("A1") ja alue Range("A1:C100")
      2. Worksheets("Välilehdennimi").Range("A1").ClearContents tyhjentää solun arvon, mutta säilyttää muotoilun.
      3. Worksheets("Välilehdennimi").Range("A1:A10").Copy kopioi leikepöydälle alueella A1:A10 olevat arvot ja muotoilun.
        1. Huomaa, että jos soluissa on rivinvaihtoja (alt + enter), ne laitetaan sitaateihin. Jokainen tekstikappale kannattaa täten laittaa omaan soluun. Tyhjä rivinvaihto muodostetaan tyhjällä solulla.
  • Makroja sisältävä tiedosto tallennetaan xlsm -muodossa.
HUOM! Jos makrot ovat välilehtiin liittyvissä ikkunoissa, välilehden poistaminen TUHOAA myös sen makrot!!!
  • Jos makro tallentaa esimerkiksi tilapäisen tiedoston samaan hakemistoon, jossa varsinainen taulukkotiedosto sijaitsee ja tulee path-virheilmoitus. Jos taulukkotiedosto on OneDrivessä, siirrä tiedosto suoraan tietokoneen C-hakemistoon. Muutoin säädä polkua.
  • Module-ikkunassa tehdyt muutokset ovat välittömästi käytettävissä.
  • Jos makrot eivät muutosten jälkeen toimi, ks. ikoniriviltä Visual Basic-editorissa onko "joku" päällä ja paina 'Reset'-ikonia. Yleensä ilmenee kun makroissa on virheitä.
  • Painikkeita ja makroja voi yhdistellä myöhemmin, esim. muutettaessa nimiä painamalla hiiren oikeaa painikkeen päällä ja valitsemalla 'Liitä makro...'.
  • Makroihin pääsee myös: Tools > Macro > Visual Basic Editor
  • Uusi makro: Insert > Module
  • Makroa voi käyttää myös solussa viittaamalla makrofunktion nimeen, esim. =FunktionNimi(A1)
  • Hävinnyt Makron salasana
  1. Työkalut > Makro > Visual Basic Editor
  2. Avautuu ikkuna, jonka vasemmasta palkista avaa hakemistopuu näkyviin
  3. Etsi sieltä makro

Ponnahdusikkuna[muokkaa]

  • Lisää painike ja yhdistä se seuraavaan makroon:
Sub Makron_nimi()
    MsgBox Worksheets("Välilehdennimi").Range("B10"), , "Ponnahdusikkunan otsikko" 'hakee tekstin annetulta välilehdeltä.
End Sub
  • Taulukosta haettavassa tekstissä voi tehdä rivinvaihtoja Alt + Enter
  • Vaihtoehtoja:
    • MsgBox "Teksti tähän"
    • MsgBox "Ensimmäinen rivi" & vbNewLine & "Toinen rivi"
    • MsgBox "Kysymys?", vbYesNoCancel, "Ponnahdusikkunann otsikko" 'Painikkeet Yes, No, Cancel
    • If MsgBox("Kysymys?") _ = vbYes Then MsgBox "Vastasit Kyllä.", , "Ponnahdusikkunan otsikko" Else MsgBox "Vastasit Ei.", , "Ponnahdusikkunan otsikko" End If
    • Ks. kohta 'Jos', jossa on esimerkki Kyllä, Ei, Peruuta toteutettuna Select-komennolla.

Postinumero[muokkaa]

Postinumerosarakkeesta häviävät etunollat. Sarakkeen solujen muoto täytyy muuttaa: Valitse postinumerosarake painamalla koko sarake ylhäältä painaen / paina hiiren oikeaa näppäint ja valitse sieltä Format Cells... / Number -välilehti / Category Special / Zip Code.

Pudotusvalikko[muokkaa]

  • Pudotusvalikon tekstit voidaan hakea samalta välilehdeltä, toiselta välilehdeltä tai toisesta tiedostosta.
  • Luettelo toisella sivuilla olevasta luettelosta:
  1. Tehdään esim. toiselle välilehdelle valintaluettelo allekkain sarakkeeseen A.
  2. Valitaan pudotusvalikolle solu johon se lisätään > Data(Tiedot)-välilehti > Data Validation (Tietojen kelpoisuuden tarkistaminen) > Allow: List > Source: valitaan luettelo esim. =Välilehdennimi!A1:A10 > ok
  • Eri pudotusvalikon teksti kuin valittaessa näkyvä teksti
  1. Kehitystyökalut > Lisää > ActiveX-komponentit > Yhdistelmäruutu (Combobox) > vedä painike haluttuun kohtaan hiirellä
  2. Kehitystyökalut > Suunnittelutila
  3. Paina hiiren oikeaa pudotusvalikon päällä > Ominaisuudet
    1. BoundColumn: 2
    2. ColumnCount: 2
    3. ColumnWidths: 20 pt;0 pt tulostaa pudotusvalikossa vain sarakkeen A-tiedot
    4. LinkedCell: solu, johon teksti tulee, esim. C10
    5. ListFillRange: Lisää sarakkeet joista data haetaan, esim. Välilehdennimi!A1:B100 hakee toiselta välilehdeltä A ja B sarakkeiden tiedot, A on pudotusvalikossa näkyvä teksti ja B on tulostuva teksti.
    6. ListRows: 20 on pudotusvalikossa näkyvien valintojen lukumäärä ilman skrollausta
  4. Sulje suunnittelutila ja testaa pudotusvalikkoa
  • Kun lisäät luetteloon rivejä ne ovat välittömästi käytettävissä, jos ne vain sisältyvät ListFillRange-alueeseen.
  • Huomaa, että ActiveX-komponentteja pääsee muokkaamaan vasta kun valitsee 'Suunnittelutila' <--tarkenna
  • Kaavallisia tekstejä ei voine kopioida <-- tarkenna


  • Pudotusvalikko Visual Basicilla
    • Avaa Visual Basic-editorssa 'TämäTyökirja'-ikkuna
    • Valitse Workbook ja Open
    • Kirjoita seuraava:
Private Sub Workbook_Open()
    Worksheets("Välilehdennimi").Range("A1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
       Formula1:="valinta1,valinta2,jne"
End Sub
    • Tallenna tiedosto > Sulje tiedosto > Avaa tiedosto > Pudotusvalikko ilmestyy soluun A1, kun sen valitsee (pieni väkänen oikeassa alakulmassa ulkopuolella solua).
    • Huomaa, että tähän tehdyt muutokset vaativat aina tiedoston sulkemisen ja uudelleenavaamisen!

Pudotusvalikko-valintojen hakeminen toisesta tiedostosta[muokkaa]

Esimerkiksi halutaan tehdä eri asiakkaista oma excel-taulukko, jossa lomakkeen täyttövaihtoehdot ovat yhteneväisiä. Täyttövaihtoehdot voivat myöhemmin muuttua. Tällöin voi luoda yhden "master-taulukon", josta haetaan aina ajantasaiset pudotusvalikkovaihtoehdot.

  1. Luodaan excel-tiedosto, esim. nimeltään Jokutiedosto, johon tulee pudotusvalikkojen valinnat. Esim. 1-riville otsikot ja sarakkeisiin niiden alle pudotusvalikoiden valinnat.
    1. Insert (Lisää) > Name > Define Name > annetaan esim. sarakkeen otsikon nimi: jokunimi > valitaan pudotusvalikoiden tulevat valinnat > ok (jos työkaluriviä ei ole Windowsin ruudun yläreunassa, kirjoita "Kerro, mitä haluat tehdä... -kohtaan: Nimien hallinta)
  2. Luodaan excel-tiedosto, johon haetaan edellä tehdystä tiedostosta valintavaihtoehdot.
    1. Insert > Name > Define Name > annetaan esim. sarakkeen otsikon nimi: jokunimi > kirjoitetaan =Jokutiedosto.xlsx!jokunimi > ok. Eli tuodaan toisesta taulukosta valikkovaihtoehdot tähän taulukkoon. Lisättäessä myöhemmin lisää, se tapahtuu ensin kirjoittamalla uusi nimi ja sitten painamalla +
    2. Valitaan pudotusvalikolle solu johon se lisätään > Data-välilehti > Data Validation > Allow: List > Source: =jokunimi > ok. Eli käytetään jokunimenä edellisessä kohdassa tässä taulukossa määriteltyä nimeä.
  3. Huom! Pudotusvalikot toimivat vain, kun valintavaihtoehtotiedosto on avattu!

Pyöristys[muokkaa]

  • Pyöristetään luvun kympit alaspäin viimeiseen tasalukuun eli 12345 --> 12340

=ROUNDDOWN(12345,-1)

Päivämäärät[muokkaa]

Solussa päiväyksen voi muuttaa muotoilu-kohdassa, jos näyttää päiväyksen esimerkiksi numerosarjana. Kaavassa käytä TEKSTI() ja muotoilua, ks. otsikko 'Tekstin muotoilu kaavassa'

  • Lisätään A1-solussa oleva kk-määrä tähän päivään.
    • =PÄIVÄ.KUUKAUSI(TÄMÄ.PÄIVÄ();A1)
  • Tarkistetaan onko viikonloppu solussa A1 ilmoitetussa päiväyksessä ja ilmoitetaan seuraava maanantai. Jos arki, ilmoitetaan sama päivämäärä.
    • =JOS(VIIKONPÄIVÄ(A1;2)>5;A1+(7-VIIKONPÄIVÄ(A1;2)+1);A1)
  • Päiväys ja nimimerkki sulkeissa: ="(" & TEKSTI(TÄMÄ.PÄIVÄ();"PP.K.VVVV") & " Etunimi)"
  • Lisätään 2 kuukautta solussa A1 olevaan päivämäärään: =PÄIVÄ.KUUKAUSI(A1;2)
  • Päivämäärä muuttjassa
Dim koronaPvm As Date
koronaPvm = "19.3.2020"

Rasti ruutuun[muokkaa]

  • Excel for Mac (2016):
  1. Excel > Preferences > View > In Ribbon, Show Developer tab
  2. Developer tab > Check Box

Rivien piilottaminen[muokkaa]

  1. Tiedot-välilehti > valitse Suodata, sarakkeisiin ilmestyy pienet nuoli-ikonit.
  2. Klikkaa haluamasi sarakkeen nuoli-ikonia > valitse sen sarakkeen arvot, jotka rivit haluat näkyvän > Ok. Tai vaihtoehtoisesti käytä muita suodatusvaihtoehtoja.
  3. Päivitä tarvittaessa avaamalla edellinen valikko ja ok.

Rivinvaihto[muokkaa]

  • Alt + Enter
  • Kaavassa MERKKI(10) tai CHAR(10)
  • HUOM! Solu, jossa rivinvaihtoa käytetään, tulee olla valittunna 'Rivitä teksti'

Solu tyhjä / ei tyhjä[muokkaa]

  • =A1<>""
  • Jos solu ei ole tyhjä, sen voi esim. värjätä ehdollisen muotoilun avulla käyttämällä kaavaa tai oheista kaavaa voi käyttää esimerkiksi toisessa kaavassa.
  • Jos solu ei ole tyhjä, tulostetaan '- Liikevaihto' ja sen perään liikevaihdon suuruus ja rivinvaihto:
    • JOS(EI(ONTYHJÄ(Välilehdennimi!A1));"- Liikevaihto " & Välilehdennimi!A2 & " €" & MERKKI(10);)
    • Englanniksi NOT ja ISBLANK

Solun arvon muuttaminen automaattisesti muutettaessa toista solua[muokkaa]

  1. Klikkaa hiiren oikealla sen välilehden nimeä ikkunan alareunassa, jossa on solu tai alue, johon tehtäessä muutos saadaa aikaan muutos jossain muualla.
  2. Valitse Näytä koodi
  3. Avautuu VBA ja ikkuna, jossa lukee Worksheet - Change
  4. Lisää seuraava koodi. Esimerkissä solun A1 arvon muuttaminen saa aikaiseksi, että Välilehdennimi1 solun A1 arvoksi asetetaan arvo B2 Välilehdennimi2:sta. Alue määritetään esim Range("A1:B10")
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range("A1")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
               Sheets("Välilehdennimi1").Range("A1") = Worksheets("Välilehdennimi2").Range("B2")
End If
End Sub
Lähde: https://docs.microsoft.com/en-us/office/troubleshoot/excel/run-macro-cells-change

Solun lukitseminen[muokkaa]

Esim. (A1*$B$1) kaavaa kopioitaessa A1 muuttuu rivin mukaan, mutta B1 pysyy aina samana.

Solun valitseminen[muokkaa]

=SIIRTYMÄ(A1;0;1) '0 riviä alas ja yksi oikealle solusta A1 eli hakee solun A2 arvon (OFFSET)

Solun värjääminen[muokkaa]

  • Värjää valittu solu punaisella. Lisää painike ja painikkeelle seuraava VBA-koodi.
Sub Värjää_solu()
    ActiveCell.Select
    ActiveCell.Interior.ColorIndex = 3
End Sub

Sähköpostiosoitteen erottaminen tekstistä[muokkaa]

=IFERROR(TRIM(RIGHT(SUBSTITUTE(LEFT(A1;FIND(" ";A1&" ";FIND("@";A1))-1);" ";REPT(" ";LEN(A1)));LEN(A1)));" ")
=JOSVIRHE(POISTA.VÄLIT(OIKEA(VAIHDA(VASEN(A1;ETSI(" ";A1&" ";ETSI("@";A1))-1);" ";TOISTA(" ";PITUUS(A1)));PITUUS(A1)));" ")
=IFERROR(TRIM(RIGHT(SUBSTITUTE(LEFT(A11;FIND("@";A1)-1);" ";REPT(" ";99));99))&MID(A1;FIND("@";A1);FIND(" ";A1&" ";FIND("@";A1))-FIND("@";A1));" ") 

Lähteet: https://www.extendoffice.com/documents/excel/1272-excel-extract-email-address.html ja https://stackoverflow.com/questions/11243423/getting-email-address-from-a-cell-in-excel

Tekstin muotoilu kaavassa[muokkaa]

=TEKSTI(TÄMÄ.PÄIVÄ();"PP.K.VVVV")
=TEXT(TODAY(),"DD/MM/YYYY")
Tuhaterotin: = TEKSTI(A1;"# #")

Tiedostosta UTF-8 tai UTF-16[muokkaa]

https://help.surveygizmo.com/help/encode-an-excel-file-to-utf-8-or-utf-16

macOS[muokkaa]

  • Microsoft Excel: ei mahdollista.
  • OpenOffice (http://www.openoffice.org)
    • Save as type: Text CSV (.csv) > valitse Edit filter settings > Character set: Unicode (UTF-8)
  • LibreOffice (http://www.libreoffice.org): kyllä
  • Google Drive
    • Vedä hiirellä xls-tiedosto Google Driveen > File > Download as > Comma-separated values (.csv, current sheet).
  • Pääte

Tekstin jakaminen useaan soluun[muokkaa]

http://office.microsoft.com/en-001/excel-help/split-text-into-different-cells-HA102809804.aspx

Tuhaterotin[muokkaa]

  • Tuhansien jälkeen ei ilmesty välilyöntiä (MacOS)
    • System Preferences > Language & Region > Advanced > Number separators: Grouping: Space > Käynnistä Excel uudestaan.

Valinnan mukaan lasketaan toisen solun arvo yhteen[muokkaa]

  • Esim. sarakkeessa A on hinta, B, C ja D-sarakkeissa valitaan X-merkillä ja E-sarakkeessa on tuotteen nimi. Nyt vain ne B, C ja D-sarakkeen hinnat lasketaan yhteen joissa on X-merkki. Kaava tehdään sarakkeille B, C ja D.
=SUMIF(B1:B100;"*";A1:A100)
  • Esim. sarakkeessa A on hinta, sarakkeessa B on tuotteen nimi ja soluun E1 kirjoitetaan tuotteen nimessä oleva sana. Ne rivit, joissa kyseinen sana on, lasketaan niiden hinnat yhteen.
=SUMIF(B1:B100,"*"&E1&"*",A1:A100)
https://exceljet.net/formula/sum-if-cell-contains-text-in-another-cell

Valintaruutu (checkbox)[muokkaa]

  • Lisäys
    • Kehitystyökalut > Lisää > Lomakeohjausobjektit > Painike. Vaihtoehtoisesti ActiveX-komponenteista.
  • Valintaruudun perusteella solun/solujen värjääminen
  • Esimerkiksi värjää solujen taustat punaisiksi ja kun valintaruutu valitaan, muuttuu se seuraavan kaavan johdosta vihreäksi.
  1. Valitse valintaruutu (ei solu)
  2. kirjoita valintaruudun kaavaksi kaavariville jokin samalla rivillä oleva vapaa solu tai toisen välilehden solu, esim. =K1 tai =välilehdennimi!A1
    1. Kyseiseen sarakkeeseen vahtuu TOSI tai EPÄTOSI sen mukaan onko valintaruutu valittuna tai ei.
  3. Valitse solu/solut, jotka esim. värjätään
  4. Aloitus > Ehdollinen muotoilu > Uusi sääntö... > Määritä kaavan avulla, mitkä solut muotoillaan
    1. Anna kaavaksi =JOS(K1=TOSI;EPÄTOSI;TOSI) jossa ensimmäin K1=TOSI on ehto ja sitten jos väite on tosi, vastaus on epätosi, muutoin tosi
      1. Muuta TOSI ja EPÄTOSI järjestystä sen mukaan miten haluat valinnan toimivan <-- tarkenna
      2. Huomaa, että vaikka käytetään vain K1, vaikuttaa kaava kaikkiin värjättyihin soluihin kullakin rivillä rivinumeronsa mukaan.
    2. Muotoile... > Täyttö > väri, esim. vihreä > OK
  • Kaavassa ja rivinvaihto päätteeksi: JOS(Välilehti!K1=EPÄTOSI;"Epätosi-teksti" & MERKKI(10);)
  • Valintaruudun arvon muuttaminen, VBA
Worksheets("Välilehdennimi").CheckBoxes("Valintaruutunimi").Value = True

URL-osoite linkistä[muokkaa]

  • Kun URL-osoite on solussa tekstin "takana"
  • Kirjoita Visual Basicissa seuraava funktio ja kirjoita tyhjään soluun =TulostaURL(tähän linkin sisältävän solu)
Public Function TulostaURL(c As Range) As String
    On Error Resume Next
    GetURL = c.Hyperlinks(1).Address
End Function

Vie solu lainausmerkeissä tekstitiedostoon[muokkaa]

  • Esim. "teksti","teksti"

Kirjoita Visual Basicissa seuraava funktio

Lähde: https://support.microsoft.com/en-us/help/291296/procedure-to-export-a-text-file-with-both-comma-and-quote-delimiters-i
Sub QuoteCommaExport()
   ' Dimension all variables.
   Dim DestFile As String
   Dim FileNum As Integer
   Dim ColumnCount As Integer
   Dim RowCount As Integer

   ' Prompt user for destination file name.
   DestFile = InputBox("Enter the destination filename" _
      & Chr(10) & "(with complete path):", "Quote-Comma Exporter")

   ' Obtain next free file handle number.
   FileNum = FreeFile()

   ' Turn error checking off.
   On Error Resume Next

   ' Attempt to open destination file for output.
   Open DestFile For Output As #FileNum

   ' If an error occurs report it and end.
   If Err <> 0 Then
      MsgBox "Cannot open filename " & DestFile
      End
   End If

   ' Turn error checking on.
   On Error GoTo 0

   ' Loop for each row in selection.
   For RowCount = 1 To Selection.Rows.Count

      ' Loop for each column in selection.
      For ColumnCount = 1 To Selection.Columns.Count

         ' Write current cell's text to file with quotation marks.
         Print #FileNum, """" & Selection.Cells(RowCount, _
            ColumnCount).Text & """";

         ' Check if cell is in last column.
         If ColumnCount = Selection.Columns.Count Then
            ' If so, then write a blank line.
            Print #FileNum,
         Else
            ' Otherwise, write a comma.
            Print #FileNum, ",";
         End If
      ' Start next iteration of ColumnCount loop.
      Next ColumnCount
   ' Start next iteration of RowCount loop.
   Next RowCount

   ' Close destination file.
   Close #FileNum
End Sub

Tekstin yhdistäminen kahdesta solusta yhteen soluun[muokkaa]

  • Myös OpenOffice
    • =A1 & ", " & A2 (tässä esimerkissä väliin tulee pilkku)
    • =A1 & " " & A2 (tässä esimerkissä väliin tulee yksi väli)

Tekstin/luvun käsittely[muokkaa]

Huom. MacOS käytä puolipistettä pilkun sijaan.

  • =RIGHT(A1; LEN(A1)-5) antaa tulokseksi 6789 kun solussa A1 on 123456789 eli näyttää oikealta kuudennesta merkistä lähtien.
  • =TRUNC(A1; 2) antaa tulokseksi 39,9 kun solussa A1 on 39,988 eli ei pyöristä.
  • =REPLACE(A1;3;1;".") antaa tulokseksi 12.456789 kun solussa A1 on 123456789 eli korvaa kolmannen merkin pisteellä.
  • =ROUND(A1;3) pyöristää kolmeen desimaaliin.
  • ="Teksti " & A1 & "teksti"
  • =ABS(A1) muuntaa negatiivisen luvunku positiiviseksi luvuksi

Tulostus[muokkaa]

Tulostettaessa eivät ilmesty solua pitemmät tekstit.

  • Solun formaatti/muoto saattaa olla väärin. Muuta esimerkiksi General

Vienti[muokkaa]

Useat nettisovellukset antavat mahdollisuuden viedä tietokannoissa olevia tietoja Excel-taulukko muotoon. Taulukon avaaminen ei kuitenkaan onnistu välttämättä ongelmitta.

Ääkköset ja Macintosh[muokkaa]

Avaa Excel ja tuo tiedosto seuraavan toiminnon kautta: File / Import... / CSV file / Delimited, File origin Windows (ANSI)

PowerPoint[muokkaa]

  • Kaatuu käynnistyessä kerta toisensa jälkeen kun valitset Retry kohdassa, jossa ohjelma varmistaa lisenssiä. Valitse sen sijaan: Remind me later. (Microsoft PpowerPoint for Mac, 2/2016)
  • Kaikkien diojen kielen muuttaminen: View > Outline view > Cmd-a > Tools > Language > valitse kieli > Ok

Diojen alkuun pikkuesitys[muokkaa]

Tilaisuuden alkaessa, osallistujien saapuessa voi laittaa pienen muutaman dian esityksen pyörimään taustalle, josta yhdellä klikkauksella pääsee varsinaisiin dioihin. Kaikki tehdään samassa PowerPoint-tiedostossa (9/2016)

  • 1. Diashown asetukset
  1. Järjestä esityksen alkuun ne diat, joita haluat pyörittää introna
  2. valitse diat pitämättä cmd-painiketta alhaalla
  3. valitse välilehti Transitions
    1. valitse After -kohtaan monenko sekunnin välein dia automaattisesti vaihtuu
    2. poista valinta kohdasta On Mouse Click
  4. valitse välilehti Slide Show > Set Up Slide Show
    1. valitse Loop continuously until 'Esc'
    2. All
    3. Using timings, if present.
  • 2. Siirtyminen esitykseen painike
  1. Valitse välilehti Insert > Shapes > Action Buttons > sopivan näköinen painike, esim. talokuvake
    1. vedä se hiirellä muotoonsa diaan haluamaasi kohtaan
    2. avautuu painikkeen Action Settings
      1. valitse Hyperlink to ja alasvetovalikosta se dia josta haluat varsinaisen esityksen alkavan
  2. säädä tarvittaessa painikkeen kokoa ja paikkaa
  3. tee painike tarvittaessa näkymättömäksi, kts. kohta 2.1
  4. kopioi painike muihin introdioihin, jolloin voit siirtyä mistä introdiasta tahansa varsinaiseen esitykseen
  5. myöhemmin, jos haluat muuttaa, aloitusdiaa, valitse hiiren oikean painikkeen valikosta Hyperlink > Edit Hperlink... > Slide... Kuvake täytyy tämän jälkeen taas kopioida kaikkiin introdioihin.
    • 2.1 Painikkeen muuttaminen näkymättömäksi (valinnainen)
  1. Klikkaa painiketta hiirellä kaksi kertaa, avautuu Format Picture-sivupalkki
  2. valitse Shape Options > Fill > Picture or texture fill
  3. vedä Transparency 100 prosenttiin sekä Fill että Line kohassa, jolloin kuvake häviää näkyvistä
  4. muista kuvakkeen sijainti ;)
  • 3. Muiden diojen piilottaminen ja lopetusdia

Vaikka kaikki diat piilotetaan, ne kuitenkin näkyvät normaalisti diaestyksessä.

  1. Paina mieleesi viimeinen dia tai tee "kiitos"-dia, jotta tiedät minkä dian jälkeen et enää paina seuraavaa diaa, jolloin alkaisi automaattinen aloitusintro pyörimään
  2. valitse kaikki varsinaisen esityksen diat klikkaamalla ensimmäistä ja sitten klikkaamalla viimeistä samalla kun pidät shift-näppäintä alhaalla
  3. klikkaa hiiren oikeaa painiketta ja valitse Hide Slide
  • 4. Dian vaihtumisaika ja tapa (valinnainen)
  1. Säädä tarvittaessa introdiojen vaihtumistapa ja vaihtumisaika Transitions-valikosta.
    1. esimerkiksi Fade ja Duration 03,00 sekuntia
  • 5. Käyttö
    • Aloita normaalisti diaesitys valitsemalla joku introdioista
    • paina painiketta kun haluat siirtyä introsta varsinaiseen esitykseen
    • älä paina viimeisen dian jälkeen esityksen alkuun, koska se aloittaa intron
Lähde http://www.techrepublic.com/blog/microsoft-office/add-a-looping-introduction-to-a-powerpoint-presentation/

Sisällysluettelo[muokkaa]

Diojen otsikot saa seuraavasti:

  1. View > Outline View
  2. Hiiren oikea painike > Collapse > Collapse All
  3. Valitse kaikki otsikot Cmd-a, cmd-c
  4. Liitä diaan tai word-asiakirjaan tms. Cmd-v

Teams[muokkaa]

Kirjautuminen organisaatioon maksuttomassa työpöytäversiossa[muokkaa]

  1. Hanki itsellesi Microsoft-tili jos sitä ei ole esimerkiksi työpaikan puolesta. Microsoft-tilin voi luoda mihin tahansa sähköpostiosoitteeseen.
  2. Pyydä organisaatiota, johon olet liittymässä lisäämään em. Microsoft-tilisi sähköpostiosoite johonkin organisaation tiimiin.
  3. Avaa Teams-työpöytäsovellus tietokoneessa ?tai puhelimessa?.
  4. Syötä Microsoft-tilin sähköpostiosoite ja Microsoft-tilin salasana.
  5. Syötä Teamsissa käyttämäsi nimi, esim. etu- ja sukunimi.
  6. Teams tunnistaa sinut ja ehdottaa valittavaksi niitä organisaatioita, joiden tiimeihin sinut on liitetty. Valitse niistä haluamasi ja olet nyt Teamsissa sisällä.
  7. Tiimin omistajat voivat tehdä sinusta tiimin jäsenen sijaan myös omistajan ja saat lisää oikeuksia toimia kyseissä tiimissä.
  8. Jos taas saat organisaation "ylläpitotunnukset" voit tehdä vielä enemmän organisaatiossa Teamsia koskevia asioita.

Tiimit ja kanavat[muokkaa]

  • ?Käyttäjä liittyy johokin organisaatioon (organization), jonka jälkeen hän kuuluu sen organisaation tiimeihin, joiden jäsen hän on. Organisaatio voi siis olla esimerkiksi työpaikan, järjestön tms. omistama.?
    • Teams free organisaatiosta eroaminen:
      • ?Jäsen kirjautuu osoitteeseen https://myapps.microsoft.com > klikkaa profiiliaan oikeassa yläkulmassa > valitsee ratas-kuvakkeen > poistaa itsensä haluamastaan organisaatiosta.?
      • "Ylläpitäjän" (admin) täytyy poistaa organisaatio.
  • Tiimi (team) kokoaa yhteen joukon ihmisiä saman organisaation sisällä. Esimerkiksi eri työyksiköt tai järjestön eri ryhmät. Tiimiin lisätään 'jäseniä' ja osasta jäseniä voi tehdä 'omistajia'. Voit kuulua useaan eri tiimiin. Tiimit näkyvät sen mukaan, mihin organisaatioon olet kirjautunut Teamsiin. Esim. sinulla voi olla käyttöoikeus työpaikan Teamsiin ja eri järjestöjen Teamsiin. Lisäksi tiimit näkyvät organisaatiossa sen mukaan, mihin tiimiin sinut on lisätty jäseneksi (tai omistajaksi). Ts. tiimeillä voidaan saman organisaation sisällä muodostaa ryhmiä, jotka eivät pääse näkemään toisten sisältöä.
    • Vaihtoehtona on luoda yksi koko organisaation kattava tiimi ja sen sisälle kaikille julkisia (keskustelu)kanavia ja yksityisiä keskustelukanavia. Kannattaa huomata, että 4/2020 ei ole vielä mahdollista siirtää kanavia tiimeistä toiseen.
  • Kanavia (channel) tehdään tiimin sisään, "alle". Esimerkiksi eri aiheita, projekteja jne. Kaikilla tiimin jäenillä on mahdollisuus osallistua näihin. Ei siis kannata tehdä useita tiimejä samoilla ihmisillä vaan jos ihmiset ovat samoja, muodostaa useita kanavia.
    • Kanava voi olla myös yksityinen eli vain määrätyillä tiimin jäsenillä on käyttöoikeus nähdä kanava.
    • Kanavalla on oma Tiedostot ja Wiki -välilehdet.
    • Kun lisätään uusi tiimi, Teams luo automaattisesti 'Yleinen' (General) -kanavan. Tämä kanava kannattaa pitää yleiskanavana, jota kaikki seuraava, jossa annetaan ilmoituksia jne.
    • Kanavia voisivat olla esim.: Yleinen, Esittäytyminen, Tuki, Palaute sekä itse asioihin ja projekteihin liittyvät kanavat.
  • Microsoft Teams-työpöytäversio palvelee samalla sekä ilmainen että maksullinen -oikeutta eli ei ole olemassa erillisiä sovelluksia. Osaa toiminnoista, kuten ennakkoon muodostettavaa kokouslinkkiä ei ilmaisessa saa tehtyä ja muitakin toimintoja, jotka eivät toimi. Kirjautumisen jälkeen näkee oikeasta yläkulmasta omasta nimikirjaimista esim. 'Microsoft Teams free'.
  • Teamsin Outlook-linkki ei tule kalenterisivulle näkyviin kun yritetään lisätä ajastettua tapahtumaa, jos käytössä on ilmainen versio (Microsoft Teams free).

Ohjevideoita[muokkaa]

Kokouksen järjestäminen[muokkaa]

  • Kun käytössä on maksullinen oikeus, valitse Outlook-sovelluksessa kalenteri ja lisää ajastettu tapahtuma. Valitse Teams. Tällöin muodostuu linkki.
  • Kun käytössä on maksuton oikeus, valitse kanavan viestit-välilehdeltä videokameran kuvake ja paina 'Järjestä kokous nyt'. Jaa linkki esim. sähköpostissa osallistujille.
    • Käytännössä tämän voi tehdä esim. niin, että viikkoa paria aikaisemmin lähettää kutsusähköpostin, jossa kertoo ajankohdan sekä tiedon, että kokoukseenliittymislinkki lähetetään uudessa sähköpostissa noin 30 minuuttia ennen kokouksen alkamista.

Kokouksen roolit (roles)[muokkaa]

  • Järjestäjä (organizer), esittäjä(t) (presenter) ja osallistuja(t) (attendee).
  • Rooleja voi asettaa jo maksullisen oikeuden ollessa kyseessä muodostettaessa ajastettua tapahtumaa (meeting options).
  • Kokouksen aikana valitse ikkunasta 'Show participants' ja valitse henkilön kohdalta ... ja vaihda rooli esittäjästä osallistujaksi ja päinvastoin.

Sisällön jakaminen[muokkaa]

  1. Vietäessä hiiri ikkunan päälle (keskelle) ilmestyy palkki, josta valitaan kuvake 'nuoli ruudun sisään/ulos'.
    1. macOS-työpöytäsovelluksessa on annettava yksityisasetuksissa lupa jakaa näyttö ensimmäisellä kerralla.
    2. Työpöytä: Kun haluat vaihdella esityksen aikana useamman ikkunan välillä.
    3. Ikkuna: Kun haluat jakaa vain yhtä ikkunaa. Onnistuu myös PowerPoint-esityksen näyttäminen.
    4. PowerPoint: Kun haluat jakaa PowerPoint-esityksen niin, että osallistujat voivat itse vaihdella dioja esityksen aikana eikä se vaikuta oman esityksen pitämiseen. Tämän toiminnon voi myös estää "silmä"-kuvakkeesta esityksen aikana. Jotta osallistujat voivat selailla dioja, tulee PP-esitys tallentaa OneDriveen (myös muita vaihtoehtoja).
    5. Whiteboard: Piirustustaulu johon voi piirtää yhdessä (ei välttämättä toimi kaikilla).
  2. Jakaminen lopetetaan samasta kuvakkeesta kuin se aloitettiin.
  • Jaettaessa voidaan jakaa myös näytettävän tiedoston/videon netistä tms. ääni. Tämä voidaan valita samasta aukeavasta ruudusta, josta valitaan mitä kuvaa jaetaan. Tällöin esim. videota näytettäessä (YouTube ym.) osallistujille kuuluu myös esittäjän näyttämän videon, musiikin tms. ääni. Huom! Saattaa jättää videon jälkeen "huminan" katselijan laitteessa kuuluviin (havainto 2.4.2020).
  • Osallistuja voi ottaa esittäjän valitseman esitystavan hallintaansa ja tämän jälkeen esimerkiksi selata esitettävän PowerPoint esityksen dioja niin, että dian vaihtaminen näkyy kaikille osallistujille. Alkuperäinen esittäjä voi hylätä hallintapyynnön tai keskeyttää sen milloin tahansa. Lisäksi esittäjä voi luovuttaa hallinnan jollekin osallistujalle. Jaa käyttöoikeus vain luotetuille henkilöille, jotka eivät tee mitään sellaista omaan laitteeseesi mikä ei ole suotavaa!
  • Jakaessasi ctrl + ja - tai cmd + ja - -näppäinyhdistelmillä voit suurentaa ja pienentää jaettavaa kohdetta. Kätevä esim. Power Point-esityksissä saada kaikki diat näkyville painamalla minus-näppäinyhdistelmää. Toimii myös pitämällä ctr tai cmd -näppäintä alhaalla ja skrollaamalla hiirellä jompaan kumpaan suuntaan.

PowerPoint[muokkaa]

  • Esitystä voi näyttää 1) diojen muokkaus -näytöllä 2) esitysnäytöllä 3) esitysnäytöllä "esittäjämoodissa", jossa esittäjä näkee sekä dian että muistiinpanot ja seuraavan diat ja jolloin osallistujat näkevät vain dian.
  • Pikanäppäimet
F5 - aloita esitys kuvasta
shift F5 - aloita esitys esillä olevasta diasta
alt F5 - näytä esitys "esittäjämoodissa"
N/P, enter, sivu alas/ylös, nuolet, välilyönti, takaisin - dioilla liikkuminen
B - näytä osallistujille musta dia
W - näytä osallistujille valkoinen dia
Esc - lopeta esitys
https://support.office.com/en-us/article/use-keyboard-shortcuts-to-deliver-powerpoint-presentations-1524ffce-bd2a-45f4-9a7f-f18b992b93a0

Keskustelun jakaminen[muokkaa]

  • Uuden jäsenen liittyessä omatoimisesti esim. kokoukseen, jäsen näkee keskustelut vain liittymishetkestä eteenpäin.
  • Lisättäessä uusi jäsen, liittämisvaiheessa voi valita näkeekö jäsen aiempia keskusteluja.

Wiki[muokkaa]

  • Kanavan välilehdeltä löytyy wiki, jota voi käyttää esimerkiksi yhdessä muokattaville asiakirjoille.
  • Jos tarkoitus on luoda enemmänkin aineistoa, kannattaa ensimmäisenä hetki miettiä rakennetta. Sivujen lohkoja ei voi siirtää sivulta toiselle kuin manuaalisesti kopioimalla.
    • Uusi sivu lisätään sisällysluettelon alaosasta. Sisällysluettelo löytyy vasemmasta yläkulmasta kolme viivaa päällekkäin.
  • Jos sivulla on paljon tekstiä, saattaa sivun latautuminen kestää ajoittain pitkäänkin.
  • Wiki-sivujen vienti (export) Teamsista tapahtuu SharePoint kautta. Toiminto ei ole käytettävissä jos ei ole riittävästi käyttöoikeuksia.

Teams Wiki -tekniikka[muokkaa]

  • HUOM! Tiedä mitä olet tekemässä!!!
  1. ?Tarvittaneen ilmeisesti 'Omistaja'-oikeus?
  2. Kirjaudu https://myapps.microsoft.com > Groups > klikkaa ryhmää > klikkaa 'SharePoint'
  3. Klikkaa 'Site contents' > Teams Wiki Data > General
    1. Näet .mht-tiedostoja wikistäsi. Huomaa, että näiden tiedostojen muokkaaminen ei muuta wiki sivua tai siirtäminen toisen kanavan vastaavaan hakemistoon ei siirrä wikisivua! .mht-tiedoston voi ladata omalle tietokoneelle ja avata Wordissa tai muuttaa päätteen .html-päätteeksi ja avata selaimessa. .mht on "linkki", joka johtaa piilotettuun tietoon, jonka wikisivu lataa kun sivu Teamsissa avataan.
  4. Klikkaa tiedostorivillä kolme pistettä päällekkäin > Details > avautuu sivupalkki ja valitse 'Manage access' > avautuu uusi sivupalkki ja valitse alhaalta 'Advanced' > avautuu uusi selaimen välilehti
  5. Klikkaa oikeassa palkissa pitkää numerosarjalinkkiä > valitse jokin 'Section' (vain yksi kerrallaan valittuna) > näet sivupalkissa otsikon 'wikiContent' alla sivuston html-koodin
  6. Klikkaa sivupalkissa 'Edit all' > voit muokata kenttiä < ei ole kokeiltu muutosta > Save/Cancel

Virheilmoitukset[muokkaa]

  • Virheilmoitus: Invitation redemption failed
    • Ilmenee yritettäessä hyväksyä lähetetty kutsu liittyä Teamsiin käyttäjäksi, ei kokoukseen.
    • Yrität liittyä sinulle lähetetystä kutsusta verkkoselaimen kautta: ei onnistu (3.4.2020).
    • Lataa Microsoft Teams-työpöytäversio ja liity sen kautta. Käytä XXX -sähköpostiosoitetta. <-- täydennettävä

Word[muokkaa]

  • Jos jotain on faktaa, niin se että Word kaatuu aivan varmasti! Tästä syystä kannattaa asettaa automaattinen tallennus tapahtumaan minuutin välein. (2018)

Bugeja[muokkaa]

  • Alkaa ilmoittamaan että Global Normal.dotm ei voida lukea tai kirjoittaa, eikä docx-loppuisia tiedostoja pysty ollenkaan avaamaan. Korjaantuu uudelleenkäynnistämällä tietokone. Finderin relaunch (Force quit) tai Officen sulkeminen eivät auta. Eikä myöskään Normal.dotm tiedosto-oikeuksien muuttaminen. (2/2016)
  • There is a serious disk error on file ~Word Work File S{A769D74A-0F0E-0249-8302-DB7F18298A6B}.tmp.
    • Katso, että Preferences > File Locations > AutoRecover Files -polku on olemassa.
    • Aja Disk Utility > First Aid.

Kenttä (field)[muokkaa]

  • Esimerkiksi päivämäärä tai sisällysluettelo, joka päivitetään hiiren oikean painikkeen kautta.
  • Kentän koodin saa näkyviin Mac tietokoneessa hiiren oikeasta painikkeesta Toggle Field codes tai alt-f9. Koodin saa suljettua alt-f9. Näppäinyhdistelmän toimintaan saamiseksi aseta tietokoneen System Preferences > Keyboard > Use F1, F2, etc. keys as standard function keys.
  • Kenttä alkaa ja päättyy mustiin { ja } -merkkeihin. Niiden sisälle tulee toiminnon suorittava koodi. Huomaa, että shift-alt-( tuotetettu { ei ole tällainen aloittava tai lopettava merkki vaan muodosta kenttä ensin vaikka päivämääräksi ja muokkaa sitten sisältöä.
  • Koodin lisäämisen jälkeen päivitä kenttä normaalisti hiiren oikean painikkeen kautta.
  • Error! Digit expected. -virheilmoitus: Saattaa liittyä järjestelmäasetusten päivämäärien muotoon, desimaaliin, tuhaterottimeen, kielivalintaa tms.

Kirjanmerkki tekstin kopioinnissa toiseen kohtaan[muokkaa]

  1. Valitse haluttu kopioitava teksti, esim. XXX > Lisää / Linkit / Kirjanmerkki (anna kirjanmerkille nimi)
  2. Valitse haluttu teksti, esim. XXX, joka korvataan kirjanmerkin tekstillä > Lisää / Linkit / Ristiviite
  3. Kun teksti muutetaan kirjanmerkin XXX kohdalta (kannattaa tuplaklikata XXX), päivitetään se korvattavaan kohtaan hiiren oikealla ja valitsemalla 'Päivitä kenttä'.

Laskukaava[muokkaa]

  1. Luo esim. tekstissä olevaan kirjanmekki, esim. XXX (ks. ohje edellä).
  2. Valitse haluttu teksti, esim. XXX, johon laskutoimuts tehdään > Lisää kenttä (etsi esim. haku-toiminnolla) > Kaava... > Valitse liitettävä kirjanmerkki ja syötä kaava = -merkin jälkeen / valitse lukumuoto
  3. Kun päivität kirjanmerkin/kirjanmerkit, päivitä laskukaavan kohta valitsemalla hiiren oikealla 'Päivitä kenttä'.

AutoText[muokkaa]

  • Esitalletetun tekstin, kuvien ym. lisääminen.

Vinkkejä[muokkaa]

  • Autorecovery. Kun Word kaatuu, se usein tarjoaa viimeisintä työtä uudelleen avattavaksi. Jos näin kuitenkaan ei tapahdu ja yrität avata manuaalisesti docx -tiedostoa, jonka Word on automaattisesti tallentanut taustalla, mutta saat virheilmoituksen. Vaihda tällöin tiedostopäätteeksi .asd jolloin sen todennäköisesti aukeaa.
  • Alaviite
    • Mac:ssa Option-Command-f
    • Ristiviite. Esimerkiksi kun alaviitteen tekstissä halutaan viitata toiseen alaviitenumeroon, joka sitten päivittyy kun lisätään uusia alaviitteitä. Viittaus-välilehdellä on kohta Ristiviite, josta viittaus lisätään. Ristiviitteet päivitetään alaviitteissä cmd-a (valitse kaikki alaviitteen tekstit) ja painamalla F9 (fn-F9). Tekstissä ristiviitteet päivitetään vastaavasti valitsemalla teksti ja F9 (fn-F9) tai hiiren oikean näppäimen valikosta Päivitä kenttä -kohdasta.
    • Seuraava on korjattu viimeisimmässä päivityksessä 12/2015: Vaikka alaviitteen tyyli olisi säädetty esimerkiksi englanniksi, alaviitteiden kieli seuraa OSX-käyttöjärjestelmän järjestelmäasetusten Näppäimistö > Syöttölähteet -kohdassa määriteltyä kieltä. Jos esimerkiksi käytät käyttöjärjestelmään suomen kielellä, mutta kirjoitat alaviitteitä englanniksi, täytyy lisätä englannin kieli järjestelmäasetuksissa ja vaihtaa näppäimistö Wordin käytön ajaksi englannin kielelle. Tämä sujuu helpoiten asettamalla lipun kuvake näkyville kuvaruudun ylälaitaan kellon vierelle.
  • 2 napautusta hiirellä vasemmalla puolen valitsee kappaleen
  • 3 napsautusta hiirellä vasemmalla puolen valitsee koko tekstin
  • kun muutat reunusta viivaimissa painamalla samalla ALT niin tulee senttimetreinä näkyviin.
  • sarkaimia säädät valitsemalla halutunlaisen sarkaimen ja painamalla sen haluttuun kohtaan viivaimella.
  • asiakirjan sijainnin levyllä ilmoittavan kentän päivitys F9 kentän päällä. Ctl + F11 lukitsee kentän.
  • Sisällysluettelo. Käytä tyyleinä valmiita otsikkoja, jotka muokkaat tekstiä kirjoittaessasi. Kun teet sisällysluettelon, Word ottaa käyttöön Sisluet 1 jne. tyylit, jotka muotoilevat sisällysluettelon. Jotta saa eri osiot samaan sisällysluetteloon, käytä esimerkiksi lähteille ja lyhenteille ensimmäistä Otsikko -tyyliä ja seuraavassa osiossa, varsinaisessa tekstissä aloita Otsikko 1:stä, joka on ensimmäisen tason otsikko ja siitä sitten eteenpäin. Älä kuitenkaan merkitse Otsikko tyyliin sisällysluettelon otsikkoa, koska sen ei välttämättä kuulu sisältyä sisällysluetteloon. Eikä myöskään lähteiden alaotsikot.
Otsikko: LÄHTEET
Otsikko 1: 1 OTSIKKO
Otsikko 2: 1.1 Otsikko 
Otsikko 3: 1.1.1 Otsikko'
  • Kirja
    • Layout > Margins > Custom Margins...
    • Multiple Pages: Book fold
    • Aseta reunukset, esim. 1,2 cm sekä gutter eli sivujen väli, esim. 0,5 cm.
    • Page Setup... > Orientation: Landscape > Paper Size A4
    • Sivut näkyvät ruudulla yksittäin, mutta tulostettaessa ilmestyvät kirjaksi. Tulosta paperin kummallekin puolelle. Siirrä tulostunut paperi samassa asennossa uudestaan tulostettavaksi, älä siis käännä 180 astetta. Tarvittaessa Manually Print on Both Sides -valinnalla ja "flip the sheets on the short edge of the paper".
    • https://support.office.com/en-us/article/create-a-booklet-or-book-dfd94694-fa4f-4c71-a1c7-737c31539e4a
  • Luettelo päivitetään Hiiren oikea näppäin luettelon päällä / Päivitä kenttä / Päivitä koko luettelo
  • Numerointi. Numeron ja tekstin väli ei säädy sopivaksi. Valitse rivin päällä Kappale / Sarkaimet ja aseta sarkaimeksi esim. 0,6 cm.
  • Osio. Osiot koostuvat sivuista. Osiot voivat olla esimerkiksi eritavoin sivunumeroituja, jolloin ne näkyvät sisällysluettelossa myös eri numeroinnilla.
  • Monitasoinen luettelo. Jos numerot eivät kerta toisensa jälkeen asetu:
  1. Nollaa koko asiakirjan luettelot asettamalla jokaiselle tyyllille luettelokohdan valinta none
  2. valitse asiakirjan ensimmäinen otsikko ja Home-valikosta monitasoinen luettelo 1 ja 1.1 ja 1.1.1. Tästä tulee nyt koko asiakirjan luettelo.
  3. valitse seuraava otsikko ja taas monitasoinen luettelo, mutta valitse nyt Current list ja sitten tab-näppäimellä siirrä se oikeaan kohtaan. Jos ei onnistu, niin maalaa edellinen otsikkotyyli telalla ja näin monista se seuraavaan.
  4. muokkaa tyyliä valitsemalla hiiren oikea numeroiden päällä ja valikosta Bullets and Numbering... koska tyylin muokkaminen ei välttämättä avaa "oikeaa" luetteloa.
  • Sivunumerot
    • Jokainen osio (section) voi jatkaa edellistä sivunumeroa tai olla omansa.
    • Jokainen osion ensimmäinen sivu voi olla ilman näkyvää sivunumeroa. Insert > Header > Edit header > Different First Page
  • Korostetun tekstin valinta
    • Avaa Find-ikkuna, josta saat auki Advance > Valitse Highlight all items found in: Maind Document > Find Format Highlight > Sulje hakuruutu > Ctrl-c

Fonttikoko[muokkaa]

  • 1 tuuma (2,54 cm) pitäisi olla 72

Muutosten sisällyttäminen kopiossa toiseen dokumenttiin[muokkaa]

Word 2010[muokkaa]

  • Kytke pois seuranta-toiminto
  • Valitse teksti, joka kopioidaan
  • Paina Ctrl - F3
  • Siirry kohdeasiakirjaan ja paina Ctrl - Shift - F3
Google: how to copy word track changes 2010
Lähde: http://rlab-it-blog.blogspot.fi/2009/07/how-to-copy-text-from-word-document-and.html

Sanasto[muokkaa]

Sanojen lisääminen sanastoon saattaa olla estynyt. Lisää... –painike näkyy harmaana. Tämä ehkä johtuu siitä, että olet päivittänyt Officen ja jokin bugi estää tämän. Tämän voi korjata lisäämällä asetuksissa uuden sanaston. Se kannattaa esimerkiksi sijoittaa johonkin helposti löydettävään hakemistoon, josta se on lisättävissä johonkin toiseen Word-asennukseen tulevaisuudessa ja siirtyy siis varmuuskopioiden mukana.

RefWorks[muokkaa]