该RDCOMclient程序包可用于连接Windows上的COM对象。在MSDN参考中,存在许多对应于值的枚举(例如,wdColorBlue对于蓝色,请参见此处)。这些可以直接在VBA代码中使用。
如何使用RDCOMClient处理枚举对象?是否有例如从R内检索枚举的对应值的方法?有一个功能,EnumValue但我看不到如何用于此目的。
一个小例子
下面的代码创建一个新的Word文档并在其中写入一些文本。段落更改为右对齐。在此2使用与枚举对应的整数wdAlignParagraphRight。我希望能够使用例如字符串"wdAlignParagraphRight"代替value 2。有没有办法做到这一点RDCOMclient?
x <- COMCreate("Word.Application") # create application
x[["visible"]] <- TRUE
x[["Documents"]]$Add()
x[["Selection"]]$TypeText("hello")
p <- x[["ActiveDocument"]][["Paragraphs"]]$Item(1)
p[["Alignment"]] <- 2
Run Code Online (Sandbox Code Playgroud)
您可以使用 R 包 DescTools 中的变量 wdConst 来实现此目的:
library(DescTools)
library(RDCOMClient)
x <- COMCreate("Word.Application") # create application
x[["visible"]] <- TRUE
x[["Documents"]]$Add()
x[["Selection"]]$TypeText("hello")
p <- x[["ActiveDocument"]][["Paragraphs"]]$Item(1)
p[["Alignment"]] <- wdConst$wdAlignParagraphRight
names(wdConst)
[1] "wd100Words" "wd10Percent"
[3] "wd10Sentences" "wd20Sentences"
[5] "wd24HourClock" "wd25Percent"
[7] "wd500Words" "wd50Percent"
[9] "wd70" "wd70FE"
[11] "wd75Percent" "wd80"
[13] "wdActiveEndAdjustedPageNumber" "wdActiveEndPageNumber"
[15] "wdActiveEndSectionNumber" "wdAddress1"
[17] "wdAddress2" "wdAddress3"
[19] "wdAdjective" "wdAdjustFirstColumn"
[21] "wdAdjustNone" "wdAdjustProportional"
[23] "wdAdjustSameWidth" "wdAdverb"
[25] "wdAfrikaans" "wdAlbanian"
[27] "wdAlertsAll" "wdAlertsMessageBox"
[29] "wdAlertsNone" "wdAlignPageNumberCenter"
[31] "wdAlignPageNumberInside" "wdAlignPageNumberLeft"
[33] "wdAlignPageNumberOutside" "wdAlignPageNumberRight"
[35] "wdAlignParagraphCenter" "wdAlignParagraphDistribute"
[37] "wdAlignParagraphJustify" "wdAlignParagraphJustifyHi"
[39] "wdAlignParagraphJustifyLow" "wdAlignParagraphJustifyMed"
[41] "wdAlignParagraphLeft" "wdAlignParagraphRight"
[43] "wdAlignParagraphThaiJustify" "wdAlignRowCenter"
[45] "wdAlignRowLeft" "wdAlignRowRight"
[47] "wdAlignTabBar" "wdAlignTabCenter"
[49] "wdAlignTabDecimal" "wdAlignTabLeft"
[51] "wdAlignTablesRowByRow" "wdAlignTabList"
[53] "wdAlignTabRight" "wdAlignVerticalBottom"
[55] "wdAlignVerticalCenter" "wdAlignVerticalJustify"
[57] "wdAlignVerticalTop" "wdAllAtOnce"
[59] "wdAllowOnlyComments" "wdAllowOnlyFormFields"
[61] "wdAllowOnlyReading" "wdAllowOnlyRevisions"
[63] "wdAlwaysConvert" "wdAmharic"
[65] "wdAnagram" "wdAnimationBlinkingBackground"
[67] "wdAnimationLasVegasLights" "wdAnimationMarchingBlackAnts"
[69] "wdAnimationMarchingRedAnts" "wdAnimationNone"
[71] "wdAnimationShimmer" "wdAnimationSparkleText"
[73] "wdApplyBreakingRules" "wdArabic"
[75] "wdArabicAlgeria" "wdArabicBahrain"
[77] "wdArabicEgypt" "wdArabicIraq"
[79] "wdArabicJordan" "wdArabicKuwait"
[81] "wdArabicLebanon" "wdArabicLibya"
[83] "wdArabicMorocco" "wdArabicOman"
[85] "wdArabicQatar" "wdArabicSyria"
[87] "wdArabicTunisia" "wdArabicUAE"
[89] "wdArabicYemen" "wdArgentina"
[91] "wdArmenian" "wdArtApples"
[93] "wdArtArchedScallops" "wdArtBabyPacifier"
[95] "wdArtBabyRattle" "wdArtBalloons3Colors"
[97] "wdArtBalloonsHotAir" "wdArtBasicBlackDashes"
[99] "wdArtBasicBlackDots" "wdArtBasicBlackSquares"
[101] "wdArtBasicThinLines" "wdArtBasicWhiteDashes"
[103] "wdArtBasicWhiteDots" "wdArtBasicWhiteSquares"
[105] "wdArtBasicWideInline" "wdArtBasicWideMidline"
[107] "wdArtBasicWideOutline" "wdArtBats"
[109] "wdArtBirds" "wdArtBirdsFlight"
[111] "wdArtCabins" "wdArtCakeSlice"
[113] "wdArtCandyCorn" "wdArtCelticKnotwork"
[115] "wdArtCertificateBanner" "wdArtChainLink"
[117] "wdArtChampagneBottle" "wdArtCheckedBarBlack"
[119] "wdArtCheckedBarColor" "wdArtCheckered"
[121] "wdArtChristmasTree" "wdArtCirclesLines"
[123] "wdArtCirclesRectangles" "wdArtClassicalWave"
[125] "wdArtClocks" "wdArtCompass"
[127] "wdArtConfetti" "wdArtConfettiGrays"
[129] "wdArtConfettiOutline" "wdArtConfettiStreamers"
[131] "wdArtConfettiWhite" "wdArtCornerTriangles"
[133] "wdArtCouponCutoutDashes" "wdArtCouponCutoutDots"
[135] "wdArtCrazyMaze" "wdArtCreaturesButterfly"
[137] "wdArtCreaturesFish" "wdArtCreaturesInsects"
[139] "wdArtCreaturesLadyBug" "wdArtCrossStitch"
[141] "wdArtCup" "wdArtDecoArch"
[143] "wdArtDecoArchColor" "wdArtDecoBlocks"
[145] "wdArtDiamondsGray" "wdArtDoubleD"
[147] "wdArtDoubleDiamonds" "wdArtEarth1"
[149] "wdArtEarth2" "wdArtEclipsingSquares1"
[151] "wdArtEclipsingSquares2" "wdArtEggsBlack"
[153] "wdArtFans" "wdArtFilm"
[155] "wdArtFirecrackers" "wdArtFlowersBlockPrint"
[157] "wdArtFlowersDaisies" "wdArtFlowersModern1"
[159] "wdArtFlowersModern2" "wdArtFlowersPansy"
[161] "wdArtFlowersRedRose" "wdArtFlowersRoses"
[163] "wdArtFlowersTeacup" "wdArtFlowersTiny"
[165] "wdArtGems" "wdArtGingerbreadMan"
[167] "wdArtGradient" "wdArtHandmade1"
[169] "wdArtHandmade2" "wdArtHeartBalloon"
[171] "wdArtHeartGray" "wdArtHearts"
[173] "wdArtHeebieJeebies" "wdArtHolly"
[175] "wdArtHouseFunky" "wdArtHypnotic"
[177] "wdArtIceCreamCones" "wdArtLightBulb"
[179] "wdArtLightning1" "wdArtLightning2"
[181] "wdArtMapleLeaf" "wdArtMapleMuffins"
[183] "wdArtMapPins" "wdArtMarquee"
[185] "wdArtMarqueeToothed" "wdArtMoons"
[187] "wdArtMosaic" "wdArtMusicNotes"
[189] "wdArtNorthwest" "wdArtOvals"
[191] "wdArtPackages" "wdArtPalmsBlack"
[193] "wdArtPalmsColor" "wdArtPaperClips"
[195] "wdArtPapyrus" "wdArtPartyFavor"
[197] "wdArtPartyGlass" "wdArtPencils"
[199] "wdArtPeople" "wdArtPeopleHats"
[201] "wdArtPeopleWaving" "wdArtPoinsettias"
[203] "wdArtPostageStamp" "wdArtPumpkin1"
[205] "wdArtPushPinNote1" "wdArtPushPinNote2"
[207] "wdArtPyramids" "wdArtPyramidsAbove"
[209] "wdArtQuadrants" "wdArtRings"
[211] "wdArtSafari" "wdArtSawtooth"
[213] "wdArtSawtoothGray" "wdArtScaredCat"
[215] "wdArtSeattle" "wdArtShadowedSquares"
[217] "wdArtSharksTeeth" "wdArtShorebirdTracks"
[219] "wdArtSkyrocket" "wdArtSnowflakeFancy"
[221] "wdArtSnowflakes" "wdArtSombrero"
[223] "wdArtSouthwest" "wdArtStars"
[225] "wdArtStars3D" "wdArtStarsBlack"
[227] "wdArtStarsShadowed" "wdArtStarsTop"
[229] "wdArtSun" "wdArtSwirligig"
[231] "wdArtTornPaper" "wdArtTornPaperBlack"
[233] "wdArtTrees" "wdArtTriangleParty"
[235] "wdArtTriangles" "wdArtTribal1"
[237] "wdArtTribal2" "wdArtTribal3"
[239] "wdArtTribal4" "wdArtTribal5"
[241] "wdArtTribal6" "wdArtTwistedLines1"
[243] "wdArtTwistedLines2" "wdArtVine"
[245] "wdArtWaveline" "wdArtWeavingAngles"
[247] "wdArtWeavingBraid" "wdArtWeavingRibbon"
[249] "wdArtWeavingStrips" "wdArtWhiteFlowers"
[251] "wdArtWoodwork" "wdArtXIllusions"
[253] "wdArtZanyTriangles" "wdArtZigZag"
[255] "wdArtZigZagStitch" "wdAskToConvert"
[257] "wdAskToNotConvert" "wdAssamese"
[259] "wdAtEndOfRowMarker" "wdAttachedTemplate"
[261] "wdAuto" "wdAutoClose"
[263] "wdAutoDetectHighAnsiFarEast" "wdAutoExec"
[265] "wdAutoExit" "wdAutoFitContent"
[267] "wdAutoFitFixed" "wdAutoFitWindow"
[269] "wdAutomaticUpdate" "wdAutoNew"
[271] "wdAutoOpen" "wdAutoPosition"
[273] "wdAutoRecoverPath" "wdAutospaceLikeWW7"
[275] "wdAutoSync" "wdAutoVersionOff"
[277] "wdAutoVersionOnClose" "wdAzeriCyrillic"
[279] "wdAzeriLatin" "wdBackward"
[281] "wdBalloonPrintOrientationAuto" "wdBalloonPrintOrientationForceLandscape"
[283] "wdBalloonPrintOrientationPreserve" "wdBalloonRevisions"
[285] "wdBalloonWidthPercent" "wdBalloonWidthPoints"
[287] "wdBaselineAlignAuto" "wdBaselineAlignBaseline"
[289] "wdBaselineAlignCenter" "wdBaselineAlignFarEast50"
[291] "wdBaselineAlignTop" "wdBasque"
[293] "wdBelgianDutch" "wdBelgianFrench"
[295] "wdBeneathText" "wdBengali"
[297] "wdBlack" "wdBlue"
[299] "wdBorderArtPath" "wdBorderBottom"
[301] "wdBorderDiagonalDown" "wdBorderDiagonalUp"
[303] "wdBorderDistanceFromPageEdge" "wdBorderDistanceFromText"
[305] "wdBorderHorizontal" "wdBorderLeft"
[307] "wdBorderRight" "wdBorderTop"
[309] "wdBorderVertical" "wdBoth"
[311] "wdBottomOfPage" "wdBrazil"
[313] "wdBrazilianPortuguese" "wdBrightGreen"
[315] "wdBrowseComment" "wdBrowseEdit"
[317] "wdBrowseEndnote" "wdBrowseField"
[319] "wdBrowseFind" "wdBrowseFootnote"
[321] "wdBrowseGoTo" "wdBrowseGraphic"
[323] "wdBrowseHeading" "wdBrowsePage"
[325