Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

自分用

Last updated at Posted at 2021-08-02

情報集約書

マクロ機能付き版ダウンロード
マクロなし簡易版ダウンロード
※セルサイズ9
シートは以下
・★
・勤怠
・WBS
・カレンダー
・祝日
・archive
・legacy

[archive]
プロファイル-業務情報、アーキテクチャ
サルベージ-スニペットkey、スニペットクエリ
レポート-調査結果

[legacy]
task表で使用して、終了した作業ブックの置き場

image.png

↑リンクなど好きに登録。
情報集約書のショトカをデスクトップにおいて、ショートカットキーを登録

最低限マクロ.java
Private Const TITLE_SEARCH_SHAPE_TEXT As String = "タイトルを入力
Sub whiteコピー()"
'
' whiteコピー Macro
'

'
    Dim titleWord As String
    titleWord = InputBox("タイトルを入力", TITLE_SEARCH_SHAPE_TEXT)
    
    ActiveSheet.Shapes.Range(Array("グループ化 1")).Visible = msoTrue
    ActiveSheet.Shapes.Range(Array("title")).TextFrame.Characters.Text = titleWord
    ActiveSheet.Shapes.Range(Array("Group 1")).Select
    Selection.Copy
    ActiveSheet.Paste
    ActiveSheet.Shapes.Range(Array("グループ化 1")).Visible = msoFalse
    ActiveSheet.Range("A1").Activate
End Sub
タスク表のシートに保存するマクロ.java
' TODO ソートを記録してマクロ登録

Sub リサイズ()
'
' リサイズ Macro
'

'
    Selection.Rows.AutoFit
End Sub
Sub whiteコピー()
'
' whiteコピー Macro
'

'
    ActiveSheet.Shapes.Range(Array("グループ化 1")).Visible = msoTrue
    ActiveSheet.Shapes.Range(Array("Group 1")).Select
    Selection.Copy
    ActiveSheet.Paste
    ActiveSheet.Shapes.Range(Array("グループ化 1")).Visible = msoFalse
    ActiveSheet.Range("A1").Activate
End Sub
Sub メモ()
'
' メモMacro
'

'
    With ActiveSheet
     Set o = .OLEObjects("memo")
     o.Verb xlVerbOpen
     Application.WindowState = xlMaximized
    End With
End Sub
Sub 保存して閉じる()
'
' 保存して閉じる Macro
'

'
    If Workbooks.Count > 1 Then
        ThisWorkbook.Close SaveChanges:=True
    Else
        ThisWorkbook.Save
        Application.Quit
    End If
End Sub
ブックに登録するマクロ(ページ切り替え、図形文字検索、Excel埋込み、Excelエクスポート).java
Option Explicit
'ポップアップの名前
Private Const TITLE_SEARCH_SHAPE_TEXT As String = "オートシェイプ検索"

'@brief  : 文字検索関数
'@return : なし
Public Sub searchShapeText()

    Dim sheet As Worksheet          'ワークシート
    Dim searchWord As String        '検索ワード

    '検索ワード入力ポップアップを表示する
    searchWord = InputBox("検索したいワードを入力して下さい", TITLE_SEARCH_SHAPE_TEXT)

    If searchWord = "" Then
        GoTo ExitSub
    End If

     '対象のワークシートを現在開いているシートとする
    Set sheet = ActiveSheet

    '検索ワードが見つからない場合に出力
    If Not (searchReplaceShapeText(sheet.Shapes, searchWord)) Then
        MsgBox "「" & searchWord & "」が見つかりません", vbExclamation, TITLE_SEARCH_SHAPE_TEXT
    End If

ExitSub:
End Sub


'@brief : 図形内検索置換関数
'@param : worksheetObject Worksheetオブジェクト
'@param : searchWord      検索文字
'@return: searchReplaceShapeText 処理継続判定
Private Function searchReplaceShapeText(ByVal worksheetObject As Object, ByVal searchWord As String) As Boolean

    Dim targetShape  As Shape       'ワークシート内の図形
    Dim shapeText   As String       '図形内の文字
    Dim discoveryWord As Long       '検索ワード発見位置
    Dim replaceWord As String       '置換後の文字
    Dim replacePopupMsg As String   '置換ポップアップメッセージ
    Dim ret As Boolean              '処理継続判定
    Dim searchWordCnt As Long: searchWordCnt = 1 '図形内検索ワード数

    ret = False

    'ワークシートに図形が存在する間ループ
    For Each targetShape In worksheetObject

        'クループ化された図形の時
        If (targetShape.Type = msoGroup) Then

            If (searchReplaceShapeText(targetShape.GroupItems, searchWord)) Then
                ret = True
                GoTo ExitFunction
            End If

        'コメントの時
        ElseIf (targetShape.Type = msoComment) Then
            GoTo CONTINUE

        Else
            '指定したテキストフレームにテキストがあるかどうかを返す
            If (targetShape.TextFrame2.HasText = msoTrue) Then

                '図形内のテキストを取得
                shapeText = targetShape.TextFrame2.TextRange.Text

                '図形内の文字列から検索
                discoveryWord = InStr(shapeText, searchWord)

                '検索ワードが見つかったとき置換の処理を行う
                If (discoveryWord > 0&) Then

                    'ウィンドウを図形の位置にスクロール
                    ActiveWindow.ScrollRow = targetShape.TopLeftCell.Row
                    ActiveWindow.ScrollColumn = targetShape.TopLeftCell.Column

                    Do While (discoveryWord > 0&)

                         'テキスト範囲選択を解除するためカレントセルを選択する
                        targetShape.TopLeftCell.Select

                        targetShape.TextFrame2.TextRange.Characters(discoveryWord, Len(searchWord)).Select

                        replacePopupMsg = "置換する場合、入力してください。" & vbCr & vbCr & "置換前 : " & searchWord & vbCr & "置換後"

                        ' 置換入力メッセージを出力する
                        replaceWord = InputBox(replacePopupMsg, "置換")

                        If replaceWord = "" Then
                          ret = True
                          GoTo CONTINUE
                        End If

                        '図形内の文字列を置換する
                        targetShape.TextFrame2.TextRange.Text = Replace(shapeText, searchWord, replaceWord, 1, searchWordCnt)
                        targetShape.TopLeftCell.Select


                        'もう一度検索置換するのか
                        If (MsgBox("continue?", vbQuestion Or vbOKCancel, TITLE_SEARCH_SHAPE_TEXT) <> vbOK) Then
                            ret = True

                            GoTo CONTINUE

                        '同じ図形内で文字検索
                        Else
                            discoveryWord = InStr(discoveryWord + 1&, shapeText, searchWord)
                        End If

                        searchWordCnt = searchWordCnt + 1

                    Loop

                    GoTo CONTINUE
                End If
            End If
        End If
CONTINUE:
    Next

ExitFunction:
    searchReplaceShapeText = ret
ExitSub:
End Function

Sub ()
'
'  Macro
'

'
    Sheets("★").Visible = xlSheetVisible
    Sheets("勤怠").Visible = xlSheetHidden
    Sheets("WBS").Visible = xlSheetHidden
    Sheets("カレンダー").Visible = xlSheetHidden
    Sheets("祝日").Visible = xlSheetHidden
    Sheets("archive").Visible = xlSheetHidden
    Sheets("legacy").Visible = xlSheetHidden
    ActiveSheet.Range("A1").Activate
End Sub
Sub 勤怠()
'
' 勤怠 Macro
'

'
    Sheets("勤怠").Visible = xlSheetVisible
    Sheets("★").Visible = xlSheetHidden
    Sheets("WBS").Visible = xlSheetHidden
    Sheets("カレンダー").Visible = xlSheetHidden
    Sheets("祝日").Visible = xlSheetHidden
    Sheets("archive").Visible = xlSheetHidden
    Sheets("legacy").Visible = xlSheetHidden
    ActiveSheet.Range("A1").Activate
End Sub
Sub WBS()
'
' WBS Macro
'

'
    Sheets("WBS").Visible = xlSheetVisible
    Sheets("★").Visible = xlSheetHidden
    Sheets("勤怠").Visible = xlSheetHidden
    Sheets("カレンダー").Visible = xlSheetHidden
    Sheets("祝日").Visible = xlSheetHidden
    Sheets("archive").Visible = xlSheetHidden
    Sheets("legacy").Visible = xlSheetHidden
    ActiveSheet.Range("A1").Activate
End Sub
Sub カレンダー()
'
' カレンダー Macro
'

'
    Sheets("カレンダー").Visible = xlSheetVisible
    Sheets("★").Visible = xlSheetHidden
    Sheets("勤怠").Visible = xlSheetHidden
    Sheets("WBS").Visible = xlSheetHidden
    Sheets("祝日").Visible = xlSheetHidden
    Sheets("archive").Visible = xlSheetHidden
    Sheets("legacy").Visible = xlSheetHidden
    ActiveSheet.Range("A1").Activate
End Sub
Sub 祝日()
'
' 祝日 Macro
'

'
    Sheets("祝日").Visible = xlSheetVisible
    Sheets("★").Visible = xlSheetHidden
    Sheets("勤怠").Visible = xlSheetHidden
    Sheets("WBS").Visible = xlSheetHidden
    Sheets("カレンダー").Visible = xlSheetHidden
    Sheets("archive").Visible = xlSheetHidden
    Sheets("legacy").Visible = xlSheetHidden
    ActiveSheet.Range("A1").Activate
End Sub
Sub archive()
'
' archive Macro
'

'
    Sheets("archive").Visible = xlSheetVisible
    Sheets("★").Visible = xlSheetHidden
    Sheets("勤怠").Visible = xlSheetHidden
    Sheets("WBS").Visible = xlSheetHidden
    Sheets("カレンダー").Visible = xlSheetHidden
    Sheets("祝日").Visible = xlSheetHidden
    Sheets("legacy").Visible = xlSheetHidden
    ActiveSheet.Range("A1").Activate
End Sub
Sub legacy()
'
' legacy Macro
'

'
    Sheets("legacy").Visible = xlSheetVisible
    Sheets("★").Visible = xlSheetHidden
    Sheets("勤怠").Visible = xlSheetHidden
    Sheets("WBS").Visible = xlSheetHidden
    Sheets("カレンダー").Visible = xlSheetHidden
    Sheets("祝日").Visible = xlSheetHidden
    Sheets("archive").Visible = xlSheetHidden
    ActiveSheet.Range("A1").Activate
End Sub
Sub Excel埋込み()
'
' Excel埋込み Macro
'

'
    'ファイルを選択
    ChDir ThisWorkbook.Path
    Dim target As Variant
    target = Application.GetOpenFilename("すべてのファイル (*.*),*.*")
    '開いて
    If VarType(target) = vbBoolean Then
        Exit Sub
    End If
    Workbooks.Open Filename:=target
    Dim bookName As String
    bookName = ActiveWorkbook.Name
    ActiveWindow.Visible = False
    'Excelにして埋込
    ActiveSheet.OLEObjects.Add(Filename:= _
        target, Link:=False, _
        DisplayAsIcon:=True, IconFileName:= _
        "C:\WINDOWS\Installer\{90160000-000F-0000-0000-0000000FF1CE}\xlicons.exe", _
        IconIndex:=0, IconLabel:="note").Select
    Workbooks(bookName).Close SaveChanges:=False

    '埋込みオブジェクトを整形
    Dim inObj As String
    inObj = Selection.Name
    ActiveSheet.Shapes.Range(Array(inObj)).Select
    ActiveSheet.Shapes(inObj).Height = 28.3464566929
    ActiveSheet.Shapes(inObj).Fill.Visible = msoTrue
    ActiveSheet.Shapes(inObj).Fill.ForeColor.RGB = RGB(204, 204, 255)
    ActiveSheet.Shapes(inObj).Top = 1
    ActiveSheet.Shapes(inObj).Left = 1
    ActiveSheet.Shapes(inObj).Fill.Solid

    'タイトルラベルを作成
    Dim strIn As String
    strIn = InputBox("タイトルを入力")
    ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 1, 1, 76.5, _
        12.75).Select
    With Selection.ShapeRange.TextFrame2.TextRange.Font
        .NameComplexScript = "Meiryo UI"
        .NameFarEast = "Meiryo UI"
        .Name = "Meiryo UI"
    End With
    Dim title As String
    title = Selection.Name
    Selection.ShapeRange.TextFrame2.TextRange.Font.Size = 9
    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorText1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0
        .Transparency = 0
        .Solid
    End With
    Selection.ShapeRange.TextFrame2.VerticalAnchor = msoAnchorMiddle
    Selection.ShapeRange.TextFrame2.TextRange.ParagraphFormat.Alignment = _
        msoAlignCenter
    Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = strIn
    
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, Len(strIn)). _
        ParagraphFormat
        .FirstLineIndent = 0
        .Alignment = msoAlignCenter
    End With
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, Len(strIn)).Font
        .NameComplexScript = "+mn-cs"
        .NameFarEast = "Meiryo UI"
        .Fill.Visible = msoTrue
        .Fill.ForeColor.ObjectThemeColor = msoThemeColorBackground1
        .Fill.ForeColor.TintAndShade = 0
        .Fill.ForeColor.Brightness = 0
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 9
        .Name = "Meiryo UI"
    End With
    
    'グループ化
    Dim SN(0 To 1) As String
    SN(0) = inObj
    SN(1) = title
    ActiveSheet.Shapes.Range(SN).Group
End Sub
Sub 埋込み出力()
'
' 埋込み出力 Macro
'

'
    '選択されたオブジェクトで
    Dim r As Variant
    For Each r In Selection.ShapeRange
        'グループ化されているものの
        If ActiveSheet.Shapes(r.Name).Type = 6 Then
            
            Dim obj As Variant
            Dim title As Variant
            Dim i As Variant
            For i = 1 To 2
                '対象オブジェクトのIDを取得
                If r.GroupItems(i).Type = 7 Then
                    obj = r.GroupItems(i).Name
                Else
                'タイトルラベルを取得
                    title = r.GroupItems(i).TextFrame.Characters.Text
                End If
            Next
            
            '保存
            ActiveSheet.OLEObjects(obj).Verb xlVerbOpen
            ChDir ThisWorkbook.Path
            ActiveWorkbook.SaveAs Filename:= _
            title, FileFormat:= _
            xlOpenXMLWorkbook, CreateBackup:=False
            ActiveWindow.Close
            MsgBox "エクスポート:" & title & ".xlsx"
        End If
    Next
End Sub

タスク管理表

image.png
以下をH列に適用
※列を追加するなら関数作成後
※要件番号とか追加したいかも

=IF(OR(J2="Done",J2="Close"),"-",IF(F2>TODAY(),"wait",IF(G2<TODAY(),"over",IF(F2=G2,"100%",NETWORKDAYS(F2,TODAY(),祝日!$A$1:$A$100)/NETWORKDAYS(F2,G2,祝日!$A$1:$A$100)))))

条件付き書式
※順番もこの通り

条件 範囲 説明
$J1="Done" $A$1:$K$10 ステータス色
$J1="Close" $A$1:$K$10 ステータス色
$H1>$I1 $I$1:$I$10 進捗
IFERROR(VLOOKUP($F1,祝日!$A$1:$A$100,1,FALSE),"error")<>"error" $F$1:$F$10 祝日
IFERROR(VLOOKUP($G1,祝日!$A$1:$A$100,1,FALSE),"error")<>"error" $G$1:$G$10 祝日
AND($F1<TODAY(),$J1="New") $F$1:$G$10 開始日が過ぎた
$G1<TODAY() $G$1:$G$10 終了日が過ぎた
AND($F1<=TODAY(),\$G1>=TODAY()) $F$1:$G$10 作業中の日付
$J1="New" $A$1:$K$10 ステータス色
$J1="WIP" $A$1:$K$10 ステータス色
$J1="Pending" $A$1:$K$10 ステータス色

WBS

image.png

日付がO2(1行目は年、2行目が日付、3行目が曜日)
開始日がF4
終了日がG4
「>」を入れる式.java
=IF(O$2<$F4,"",IF(O$2>$G4,"",">"))
営業日計算式.java
=NETWORKDAYS(F4,G4,祝日!$A$1:$A$100)
必要進捗を出す式.java
=IF(F4>TODAY(),"wait",IF(G4<TODAY(),"over",IF(F4=G4,"100%",NETWORKDAYS(F4,TODAY(),祝日!$A$1:$A$100)/NETWORKDAYS(F4,G4,祝日!$A$1:$A$100))))

条件付き書式
・">"と一致した場合に色
・今日の場合縦に色
・祝日休日の場合縦に色

IFERROR(VLOOKUP(O$2,祝日!$A$1:$A$100,1,FALSE),"error")<>"error"

カレンダー

image.png
image.png
↑これでオートフィル

別でイベント日を記載し

条件付き書式
・祝日
・イベント日

バッチ

場所を問わず、とりあえず起動すれば環境構築してくれる。
変えたければ、ドライブレターとバッチファイル名を修正して起動。

フォルダ[World]階層イメージ.cmd
[artifact]
 ├ _機能名.bat
 ├ _機能名.bat
 ├ Metis.xlsx
 └ JARVIS.bat

[link]
 1_all
  ├ アプリ.lnk
  ├ アプリ.lnk
  └ アプリ.lnk
 2_task
  ├ アプリ.lnk
  ├ アプリ.lnk
  └ アプリ.lnk 

[work]
 ├ 作業フォルダ
 ├ 作業フォルダ
 ├ 作業ファイル
 └ 作業ファイル
a.bat
@echo off
mode 100,30
call:setting_world
call:setting_this
call:calling
exit

rem ==========================================================
:setting_world
rem *********************
set THE_ROOT=C:\Users\%USERNAME%\
rem *********************
set THE_ROOT_DOCUMENT=%THE_ROOT%Documents\
set THE_ROOT_DESKTOP=%THE_ROOT%Desktop\
set WORLD=%THE_ROOT_DOCUMENT%World\
set GIFT=%THE_ROOT_DOCUMENT%Gift\
set TOOLBOX=%THE_ROOT_DOCUMENT%Tool\
set ARTIFACT=%WORLD%artifact\
set LINK=%WORLD%link\
set GIFT_TO=%Gift%Gift
set WWORK=%WORLD%work\
set LOG=[INFO] CREATE DIRECTORY: 
if not exist %ARTIFACT% mkdir %ARTIFACT% && echo %LOG%%ARTIFACT%
if not exist %LINK% mkdir %LINK% && echo %LOG%%LINK%
if not exist %WWORK% mkdir %WWORK% && echo %LOG%%WWORK%
if not exist %GIFT% mkdir %GIFT% && echo %LOG%%GIFT%
if not exist %TOOLBOX% mkdir %TOOLBOX% && %LOG%%TOOLBOX%
exit /b

:setting_this
rem *********************
set THIS_NAME=JARVIS
rem *********************
set THIS_PATH=%ARTIFACT%%THIS_NAME%.bat
set SC_PATH=%THE_ROOT_DESKTOP%%THIS_NAME%.lnk
set START_UP="C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\%THIS_NAME%_shadow.bat"
if not exist %START_UP% (
 echo @echo off>>%START_UP%
 echo start %SC_PATH%>>%START_UP%
 echo exit>>%START_UP%
 echo [INFO] CREATE LINK_FILE: %START_UP%
)
if not exist %THIS_PATH% (copy /y "%~dp0%~nx0" "%THIS_PATH%" && echo [INFO] CREATE BAT_FILE: %THIS_PATH%)
if not exist %SC_PATH% (
 powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%SC_PATH%');$s.TargetPath='%THIS_PATH%';$s.Save()"
 echo [INFO] CREATE LINK_FILE: %SC_PATH%
 echo. && echo [MESSAGE] PLEASE ADD THE KEYMAP && echo.
 echo [MESSAGE] FINISH AND DELETE THIS BAT_FILE, AND START NEW CREATED LINK_FILE %THIS_NAME%.link
 pause && start %SC_PATH% && del /f "%~dp0%~nx0" && exit
)
set SPL============================================
set trimDate=%DATE: =0%
set timestamp=_%trimDate:~0,4%_%trimDate:~5,2%_%trimDate:~8,2%
set FUNC_NM_0=0_end
set FUNC_NM_1=1_open
set FUNC_NM_2=2_bakup
set FUNC_NM_3=3_artifacts
set FUNC_NM_4=4_reboot
exit /b

rem ==========================================================
:win_act
powershell -command "(new-object -com 'WScript.Shell').AppActivate('%~n0')" > nul
exit /b

:mktab
echo. && echo [%~n0] CHOOSE THE FUNCTION WITH "TAB"  ONLY ENTER WILL FINISH && echo %SPL%%SPL%
for /f "usebackq delims== tokens=2" %%a in (`set FUNC_NM`) do (echo %%a && if not exist %%a type nul>%%a && attrib +h %%a)
echo %SPL%%SPL% && echo. && echo ...
exit /b

:deltab
for /f "usebackq delims== tokens=2" %%a in (`set FUNC_NM`) do (if exist %%a attrib -h %%a && del /q %%a)
exit /b

rem ==========================================================
:calling
cls
color 0b
cd /d %ARTIFACT% && call:win_act && call:mktab
set CCC= && set/p CCC=
if errorlevel 1 (echo [%~n0] BYE && powershell sleep -s 1 && call:deltab && exit)
call:deltab
for /f "usebackq delims== tokens=2" %%a in (`set FUNC_NM`) do (if %%a==%CCC% echo. && color c && call:%CCC% && call:calling)
call:calling

rem ==========================================================
:0_end
taskkill /f /fi "imagename ne cmd.exe" /fi "imagename ne conhost.exe"
exit /b

:1_open
cd /d %LINK%
echo [%~n0] CHOOSE THE LINKS_SET_NAME WITH "TAB"  ONLY ENTER WILL FINISH && echo %SPL%
dir /ad /b /o:n && echo %SPL% && echo.
set TARGETSET= && set /p TARGETSET=
if errorlevel 1 (exit /b)
cd %TARGETSET%
if errorlevel 1 (exit /b)
for %%a in (*.*) do (echo [%~n0] START:%%a && start "" "%%a" && call:win_act)
exit /b

:2_bakup
cd %GIFT%
dir /a-d /b /o:n | findstr /v "names.txt">names.txt
powershell Get-Content -path names.txt -tail 1 >latest_name.txt
set LATEST_NAME= && set /p LATEST_NAME=<latest_name.txt
del /q %GIFT%names.txt
del /q %GIFT%latest_name.txt
echo %LATEST_NAME%| findstr /r "^.*%timestamp%_ver.*\.zip$" > nul
if not errorlevel 1 set VERSION=%LATEST_NAME:~19,-4%
set /a NEW_VER=%VERSION%+1
set GIFT_NAME=%GIFT_TO%%timestamp%_ver%NEW_VER%
mkdir %GIFT_NAME%
robocopy /s /e %WORLD% %GIFT_NAME%
powershell Compress-Archive -Path %GIFT_NAME% -DestinationPath %GIFT_NAME%.zip -Force
rmdir /s /q %GIFT_NAME%
exit /b

:3_artifacts
echo [%~n0] CHOOSE THE ARTIFACT WITH "TAB"  ONLY ENTER WILL FINISH && echo %SPL%
dir /a-d /b /o:n | findstr /v "%~n0.bat" && echo %SPL% && echo.
set TARGETFILE= && set /p TARGETFILE=
if errorlevel 1 (exit /b)
dir /a-d /b /s | findstr "%TARGETFILE%">%ARTIFACT%phantom.txt
set TARGETTOPEN= && set /p TARGETTOPEN=<%ARTIFACT%phantom.txt
del /q %ARTIFACT%phantom.txt
echo START:%TARGETTOPEN% && start %TARGETTOPEN% && echo.
exit /b

:4_reboot
choice /t 2 /d n /m "[%~n0] REBOOT?"
if not errorlevel 2 (shutdown /r /t 1) else (exit /b)
exit /b
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?